פורסם 2012 בדצמבר 512 שנים תחשוב איך אתה עושה את זה. רמז: אתה לא יכול להשתמש במשתנה בודד בשביל לשמור את התו הנפוץ (איך אפשר לדעת מה יבוא יותר?)
פורסם 2012 בדצמבר 512 שנים מחבר חשבתי על להכין מערך נוסף, בגודל 256 (טבלת האסקי) ובמהלך הקליטה כבר לקדם ב+1 כל תא במקום התו הנסרק.אך איך אח"כ אבדוק מה התו הנפוץ ביותר? ואיך אדפיס את זה עם הערך הנמוך ביותר במידה ויש כמה?
פורסם 2012 בדצמבר 512 שנים מחבר בעצם אם אני ארוץ על מערך הספירה בלולאה, אני אתחיל מלמטה, ככה שאני אדע "קודם" על הערך הנמוך יותר. נראה לי שאני בסדר בינתיים.הסעיף האחרון נראה בעייתי כרגע.
פורסם 2012 בדצמבר 512 שנים מחבר 4 סדרת התווים המשותפים לשתי הסדרות (ללא חזרות) - מודפסים לפי הסדר בטבלת ה ASCII .זה מה שנשאר לי לעשות כרגע.רעיונות?
פורסם 2012 בדצמבר 512 שנים שתי הערות על הקוד האחרון שלך:א. למה כתבת 10 ולא 'n\'? זה יהיה הרבה יותר ברור ככה.ב. שוב השתמשת ב-= במקום ==.ול-4: וריאציה על ספירת התווים שעשית ב-3.
פורסם 2012 בדצמבר 612 שנים מחבר א. לא הייתי בטוח שהקומפיילר יאכל 'n\' אבל אני אנסה.ב. איפה? לא מצאתי, אולי כבר תיקנתי את זה בעצמי.מממ לא הבנתי אותך?
פורסם 2012 בדצמבר 612 שנים א. ברור שכן, זה חלק מהשפה. ב. בשורה הזו: (r=0)?(flag=2):(flag=3); חוץ מזה לא נהוג לכתוב ככה. או שתעשה if או שתכתוב: flag = (r==0) ? 2 : 3; ג. זה התרגיל שלך בגדול, כמו שספרת כמה פעמים כל תו, רק שעכשיו לא איכפת לך כמה פעמים התו מופיע, אלא רק האם הוא מופיע או לא. נ.ב. אפשר לבדוק אם תו הוא ספרה באמצעות הפונקציה isdigit (צריך לעשות אינקלוד ל-ctype.h).
פורסם 2012 בדצמבר 612 שנים מחבר while(flag == 0) { temp=fgetc(file); //check char from file switch(temp) //what to do with char { case '\n': // ignore /n char break; case '.': //end of LINE r++; c = 0; break; case EOF: //end of FILE flag = 1; break; default: //good digit/char if(isdigit(temp)) //check if digit { (r==0)?(flag=2):(flag=3); } if(biggest < temp) //biggest char (ascii value) { biggest = temp; } if(smallest > temp) //smallest char (ascii value) { smallest = temp; } for(i = 0; r == 1 && i < COLOUMNS; i++) { if(tav[0][i] == tav[r][c]); { counter[1][i]+=1; printf("test %d", i); } } tav[r][c++]=temp; counter[0][temp]+=1; } אוקיי, תיקנתי את ה = ל ==, צודק לא שמתי לב יישמתי גם את הפונקציה לבדיקת תו-מספר - תודה! עכשיו לגבי הסעיף הרביעי - הגדלתי את מערך הבדיקה שלי כך שתהיה לי שורה נוספת על מנת לספור שם תווים שמופיעים פעמיים ואח"כ להדפיסם. אני מנסה כבר בזמן הקליטה, ברגע שהשורה היא השניה (כלומר כבר נקלטה שורה ראשונה ויש לי מול מה להשוות) לבדוק אם התו שאני קולט ברגע זה לשורה השניה, נמצא כבר בשורה הראשונה (בעזרתם לולאה) אבל משהו לא מסתדר לי פה.
פורסם 2012 בדצמבר 612 שנים לא הבנתי בכלל את המשפט האחרון שלך.בכל מקרה, תמשיך לחשוב על זה... אל תנסה לעשות את הכל בתוך הלולאה (בדיוק כמו שכשמצאת את התו שמופיע הכי הרבה פעמים לא עשית הכל בתוך הלולאה).חוץ מזה, אל תוסיף סתם שורה למערך. כמו שלא תחזיק מערך חד מימדי שלכל איבר בו יש תפקיד שונה לחלוטין, ככה גם אם יש לך שני מערכים עם תפקידים שונים לחלוטין זה לא אומר שהם צריכים להיות מערך דו מימדי אחד (לא היית עושה מערך חד מימדי ומשתמש בתא הראשון שלו עבור המשתנה flag, התא השני עבור temp והתא השלישי עבור i, נכון?)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.