פורסם 2009 במאי 2016 שנים עניתי על השאלה ה1 אך שאר הסעיפים לא ברורים לי ,אשמח לעזרה.http://www.f2h.co.il/959573604 לגבי א -ג לא ידעתי איך להתחיל .תודה על העזרה
פורסם 2009 במאי 2016 שנים מחבר האם לגבי 3 הסעיפים:א': צריך לבדוק את תקינות הקלט. זאת אומרת, כל עוד המחרוזת שהוכנסה לא כוללת בדיוק 40 ספרות - הקלט שגוי.ב': הצגת תת הסדרה הארוכה ביותר, איך בדיוק לעשות זאת?ג': הצגת המיקום (האינדקס) של התו הראשון בסדרה הארוכה ביותר (התו הראשון במחרוזת שנקלטה מיקומו 0 , התו השני 1 וכך הלאה...) איך לעשות זאת?
פורסם 2009 במאי 2016 שנים א. אני לא חושב שחובה שהמחרוזת תכיל בדיוק 40 ספרות (בדוגמה שנתנו יש הרבה פחות), אבל כן צריך לבדוק שהיא מכילה רק ספרות.ב. אחרי שתצליח לפתור את ג', תוכל להשתמש בתוצאה שלו ובתוצאה של 1 בשביל להדפיס את הקטע הרלוונטי במחרוזת.ג. איך בדיוק פתרת את 1? אני מניח שאתה שומר בצד כל פעם את האורך של תת הסדרה הארוכה ביותר, נכון? אז תשמור בנוסף גם את המקום שבו היא מתחילה.
פורסם 2009 במאי 2416 שנים מחבר זה הסעיף הראשון ==============#include <stdio.h>#include <stdlib.h>#include<math.h>#include<string.h>void main (){char str[40];int len,i;int maxlen=0 ,substr=1;printf("enter a numeric string (40);");gets(str);len=strlen(str);for(i=0;i<len;i++) //check string include numberif(str[i]<'1' || str [i] >'9'){printf("error //invalid string //");return ;}for(i=0;i<len-1;i++) /* checking for substring */{if(str[i+1]==str[i]+1) substr++;else substr=1;if (substr>maxlen) maxlen=substr;}if (len==1) printf("the max substring length is: %d \n",len);else printf("the max substring length is: %d \n",maxlen);}סעיף שני שהתחלתי #include <stdio.h>#include <stdlib.h>#include<math.h>#include<string.h>void main (){char str[40];int len,i;int maxlen=0 ,substr=1;printf("enter a numeric string (40);");gets(str);len=strlen(str);for(i=0;i<len;i++) //check string include numberif(str[i]<'1' || str [i] >'9'){printf("error //invalid string //");return ;}printf("enter a char ");scanf("%c",&ch);if (string[i]-ch ==1)n++;else
פורסם 2009 במאי 2516 שנים הערות לסעיף הראשון:בסך הכל הקוד נראה סבבה, חוץ משני באגים שיש לך:א. כשאתה יוצר מחרוזת, אתה חייב לדאוג להקצות מקום אחד יותר מאורך המחרוזת. כלומר, על מנת להחזיק מחרוזת באורך 40, צריך ליצור מערך בגודל 41 לפחות (זה כי למחרוזת יש תו נוסף שמציין איפה היא נגמרת).ב. אתה בודק אם הספרות הן בין 1 ל-9, אבל מה עם 0?ג. אין צורך ב-if בסוף, פשוט תאתחל את maxlen ל-1 במקום ל-0.לא הבנתי מה התחלת לעשות בסעיף השני (א', ב' או ג'?)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.