עבור לתוכן

שפת c

Featured Replies

פורסם

היי נתבקשנו למצוא פלינדרום בשפת c. כאשר נצטרך לקלוט מהמתמש שנימספרים באופן הבא: 

s יהיה המספר שהמתמש יכניס  (טיפוס מסוג int)  שלא ידוע לנו אורכו.

בנוסף לכך יוכנס מספר k שיקבע את אורך הפלינדרום הראשון במספר s.

לדוגמא: אם יוכנס מהמתמש המספר s= 13455431

ויוכנס k=2 אז הפלינדרום יהיה 55.

עבור k=3 הפלינדרום יהיה: לא קיים

עבור k=1 הפלינדרום יהיה 1.

עבור k=4 הפלינדרום יהיה 4554.

אשמח לעזרה יושב על זה שעותתתת ולא יודע איך להתחיל אפילוו 

פורסם

מצרף פתרון חלקי

שים לב לעשות בדיקת תקינות קלט

אם אתה נותן מחזורת בגודל אי זוגי גם K צריך לעשות אי זוגי

אם S באורך זוגי אז גם K צריך להיות זוגי

בהצלחה

 

 

#include <stdio.h>
#include <string.h>
void main(void)
{
	char s[255]="0";
	char output[255] = "0";
	int k,i,k_part2,j=0;
	printf("hi world...\nPlease enter string-");
#pragma warning(suppress : 4996)
	scanf("%s", &s);
	printf("\nPlease enter value for k-");
#pragma warning(suppress : 4996)
	scanf("%d", &k);
	k_part2 = k;
	if (k == 1)
		printf("\n%c", s[0]);
	else
	{
		int x = strlen(s) / 2;
		int iszogi = strlen(s) % 2;
		if (iszogi != 0)
		{
			output[k_part2 / 2+1] = s[x];
			for (i = 1;i <= k;i++)
			{
				
				if (s[x - i] == s[x + i]) {
					
				}
				else 
					break;

			}
			for (i = (x)-k / 2;i <= (x)+k / 2;i++) {
				printf("%c", s[i]);
			}
		}
		else
		{
			for (i = 0;i <= k;i++)
			{

				if (s[x - i] == s[x + i]) {
					
				}
				else
					break;
			}
			for (i = (x)-k/2+1-1;i < (x)+k / 2;i++) {
				printf("%c", s[i]);
			}
		}
		
	}
}

 

פורסם
ציטוט של אלון אדלשטיין

היי נתבקשנו למצוא פלינדרום בשפת c. כאשר נצטרך לקלוט מהמתמש שנימספרים באופן הבא: 

s יהיה המספר שהמתמש יכניס  (טיפוס מסוג int)  שלא ידוע לנו אורכו.

בנוסף לכך יוכנס מספר k שיקבע את אורך הפלינדרום הראשון במספר s.

לדוגמא: אם יוכנס מהמתמש המספר s= 13455431

ויוכנס k=2 אז הפלינדרום יהיה 55.

עבור k=3 הפלינדרום יהיה: לא קיים

עבור k=1 הפלינדרום יהיה 1.

עבור k=4 הפלינדרום יהיה 4554.

אשמח לעזרה יושב על זה שעותתתת ולא יודע איך להתחיל אפילוו 

יש פורום תכנות, זה פורום על תוכנות. תבקש מהמנהלים להעביר.

בטוח שC או אולי C++? אם אתה לא יודע - השתמשתם בcout או printf?

ציטוט של outlook

 



#include <stdio.h>
#include <string.h>
void main(void)
{
	char s[255]="0";
	char output[255] = "0";
	int k,i,k_part2,j=0;
	printf("hi world...\nPlease enter string-");
#pragma warning(suppress : 4996)
	scanf("%s", &s);
	printf("\nPlease enter value for k-");
#pragma warning(suppress : 4996)
	scanf("%d", &k);
	k_part2 = k;
	if (k == 1)
		printf("\n%c", s[0]);
	else
	{
		int x = strlen(s) / 2;
		int iszogi = strlen(s) % 2;
		if (iszogi != 0)
		{
			output[k_part2 / 2+1] = s[x];
			for (i = 1;i <= k;i++)
			{
				
				if (s[x - i] == s[x + i]) {
					
				}
				else 
					break;

			}
			for (i = (x)-k / 2;i <= (x)+k / 2;i++) {
				printf("%c", s[i]);
			}
		}
		else
		{
			for (i = 0;i <= k;i++)
			{

				if (s[x - i] == s[x + i]) {
					
				}
				else
					break;
			}
			for (i = (x)-k/2+1-1;i < (x)+k / 2;i++) {
				printf("%c", s[i]);
			}
		}
		
	}
}

 

ברצינות? iszogi? שמות משתנים בעברית? disable warnings? וחוץ מזה הוא אמר לקלוט לint ולא string. מספרי קסם. ירידת שורה אחרי scanf. אין ניקוי חוצץ. if ריק ואחרי else. אין אחידות בסגנון הקוד. כפילות קוד. קדימות אופרטורים שגויה (אין סוגריים כשצריך להיות). ואחרי כל זה, הקוד בכלל לא מבצע את מה שנדרש.

מזמן לא ראיתי קוד כזה.

פורסם
ציטוט של af db creid

יש פורום תכנות, זה פורום על תוכנות. תבקש מהמנהלים להעביר.

בטוח שC או אולי C++? אם אתה לא יודע - השתמשתם בcout או printf?

ברצינות? iszogi? שמות משתנים בעברית? disable warnings? וחוץ מזה הוא אמר לקלוט לint ולא string. מספרי קסם. ירידת שורה אחרי scanf. אין ניקוי חוצץ. if ריק ואחרי else. אין אחידות בסגנון הקוד. כפילות קוד. קדימות אופרטורים שגויה (אין סוגריים כשצריך להיות). ואחרי כל זה, הקוד בכלל לא מבצע את מה שנדרש.

מזמן לא ראיתי קוד כזה.

שמח לאתגר אותך טרול מקלדת

אני מנסה לעזור למישהו ומקבל ממך ריקושטים? 

תכתוב את הקוד המדהים שלך ותפנה אותו לכותב

לא ביקשתי ולא שאלתי לדעתך

 

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים