![]() |
# 12 |
חבר בקהילה
|
|
![]() |
![]() |
# 14 |
חבר בקהילה
|
|
![]() |
![]() |
# 15 |
חבר בקהילה
|
אז אין צורך בפלוס אחד,
נניח ויש לך המילה ABA, str[0] = A str[1] = B str[2] = A סה"כ מילה בת 3 אותיות, כשהאינדקס האחרון הוא 2, אתה חורג שם מהגבול. ובכל מקרה, הלולאה הפנימית (זאת עם הZ) בודקת כמה פעמים מופיעה אות ספציפית מהמטריצה במחרוזת, מעבר לזה זה לא נותן לך כלום. אני מציע דבר כזה: שני לולאות שרצות על המטריצה. אינדקס שלישי שומר על האינדקס של המילה המבוקשת, ברגע שאתה מוצא שהאות הנוכחית במטריצה שווה לאות הרשונה במחרוזת תתחיל לקדם את האינדקס של המילה, אם אתה רואה שאין שווין לפני שאתה מגיע לסוף של המילה, אפס את האינדקס. אם הגעת לסוף המילה בהצלחה, אז יופי טופי, ספור אותה. אם לא היה ברור, הנה ההתחלה של הפונקציה לחיפוש מילה: קוד:
int searchMatrix(char **mat, int x, int y, char * what) { int length = strlen(what); int i, j, whatIndex = 0; int foundCounter = 0; |
![]() |
![]() |
# 16 | |
חבר בקהילה
|
ציטוט:
ואין הדבר הזה לא נקלט לי בשכל אני הבנתי איך למצוא את המילה הראשונה אבל אחרי שמצאתי - מה אני אמור לעשות? עוד לולאה אני לא חושב שתעזור לי אמ.. ואני חושב שהלולאה השלישית היא דווקא עוזרת לי כי רק באמצעותה אפשר למצוא את המילים שיש מילה שהמשתמש רשם אהה ולא השתמשתי בstrlen בגלל שלא למדנו ואנחנו יכולים להשתמש רק בפונקציות שלמדנו וד"א אני מודה לך על העזרה אני מעריך את זה מאוד |
|
![]() |
![]() |
# 17 |
חבר בקהילה
|
אז תכתוב strlen משלך =)
קוד:
int strlen( char* st) { int count = 0; for ( ; *st ; st++) count++; return count; } VS לא זורק שגיאה, זה עוד לא אומר שזה נכון. Last edited by SDF; 06-11-08 at 00:59.. סיבה: טעות בקוד |
![]() |
![]() |
# 18 | |
חבר בקהילה
|
ציטוט:
וד"א זה לא קשור לVS הנה זה מה שעשיתי קוד:
for(i = 0; i < 6; i++) { if(forCheck[i] > 6) { howmany = i + 1; } } (אני לא יכול להשתמש גם בגדול ושווה כי לא למדנו) |
|
![]() |
![]() |
# 20 |
חבר בקהילה
|
ואין מצב שלמדתם מטריצות ואתם לא יודעים גדול שווה....כעיקרון גם במתמטיקה, כן אסור להשתמש במשו שלא למדת..
לא למדת דמיון , תפתור בלי דמיון |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|