שפת c - תוכנה - HWzone פורומים
עבור לתוכן
  • צור חשבון
  • מי אנחנו?

    שלום אורח/ת!

     
    שים לב - על מנת להשתתף בקהילה שלנו, להגיב ולפתוח דיונים חדשים, עליך להצטרף כחבר רשום.

    החברים שלנו נהנים מיתרונות רבים, כולל היכולת להשתתף בדיונים, להנות מהגרלות ומבצעים לחברי האתר, ולקבל מידי שבוע את התכנים הבולטים שלנו ישירות במייל.

    לא אוהבים שמציקים לכם במייל? ניתן להירשם לאתר אך לוותר על הרישום לעידכוני המייל השבועיים.

שפת c


Recommended Posts

היי נתבקשנו למצוא פלינדרום בשפת 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. אין אחידות בסגנון הקוד. כפילות קוד. קדימות אופרטורים שגויה (אין סוגריים כשצריך להיות). ואחרי כל זה, הקוד בכלל לא מבצע את מה שנדרש.

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

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

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

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

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

 

קישור ישיר להודעה
שתף באתרים אחרים

הצטרפ/י לדיון

בשלב זה תוכל/י להצטרף לדיון, ולאחר מכן להצטרף לקהילה שלנו. אם כבר יש לך חשבון אצלנו, אנא התחבר/י עכשיו על מנת להגיב תחת שם המשתמש שלך.
לתשומת לבך: התגובה תופיע לגולשים לאחר אישור של צוות הנהלת הפורומים.

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.

×
  • צור חדש...

בראש החדשות:

תוקפת בשלוש חזיתות: AMD משיקה 13 מעבדים ניידים חדשים בבת אחת

תוקפת בשלוש חזיתות: AMD משיקה 13 מעבדים ניידים חדשים בבת אחת

בזמן שאינטל מסתפקת בהשקה של שלושה דגמים ניידים חדשים כחיזוק למשפחת מוצרים קיימת - המתחרה שלה יורה בכל התותחים עם מגוון גדול של דגמים בהספקים של בין 15 וואט ל-45 וואט ומעלה, בתוספת ליבות Zen 3 (כמעט) בכל מקום

קרא עוד

חדש באתר