![]() |
עזרה ב-C - מטריצה
שלום,
אני צריך לעשות מטריצת אותיות 5X5 שזה יהיה בעצם תפזורת וצריך לחשב בה את מספר המופעים של מילה מסויימת בתפזורת, המופע הזה יכול להיות מלמעלה, מלמטה, ימין, שמאל לדוגמא: A B A G I C A M P U M B O Y R Z A O Z U U R U B C נגיד זה יבקש ממני את השורה הראשונה אז יהיה רשום ABAGI בשורה השניה: CAMPU שלישית: MBOYR רביעית: ZAOZU חמישית: URUBC ואז אם נגיד אני ירשום שזה יחפש כמה פעמים המילה URU או ABA מופיעה זה יגיד לי שתיים אני עכשיו ישבתי על זה דיי הרבה זמן ופשוט לא עולה לי רעיון כיצד לבצע זאת HELP ME :-/ |
יש לי רעיון, אני לא יודע עד כמה הוא יעיל אבל גם רעיון.
תבצע לולאה שתעבור על כל המטריצה ותבדוק אם האות הנוכחית(i) שווה לאות הראשונה במילה המבוקשת, אם שווה תמשיך לבדוק מכל צד(למעלה, למטה , ימין ושמאל) אם האות הבאה שווה לאות השנייה של המילה המבוקשת, אם כן תמשיך רקורסיבית(יש לדאוג לבדיקה של מספר אותיות). אם לא שווה להמשיך לרוץ על הלולאה. |
ציטוט:
ואם הבנתי נכון אז זה נראה לי קצת בעיה לבדוק מילה כי אם אני יקיש מחרוזת אז זה לא יסתדר ולפי מה שאני יודע אי אפשר להשוות מחרוזות בC |
ציטוט:
אני לא בטוח איך זה בC אבל בוא אני אתן דוגמא. קוד:
str = "test"; |
רוץ פעם על השורות ופעם על העמודות ותחפש...לא כזה קשה..
יש אלכסונים גם? אם לא אז זה יחסית פשוט.. |
ציטוט:
ואיך לרוץ על העמודות? |
אחריי שתסיים יש לי קוד בשבילך, נשווה.
ובנתיים: איך רצים לפי שורות: קוד:
int i, j; בשביל ללכת לפי עמודות, אתה צריך: matrix[j][i] להחליף את האינדקסים, שים לב שאתה לא חורג מגבולות מערך אם יש לך מטריצה לא ריבועית. |
ציטוט:
מה שעשיתי היה: קוד:
for(i = 0; i < 5; i++) יש לי עוד בעיה ביינתים עשיתי את הקוד הזה: קוד:
#include <stdio.h> Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted. איך אפשר לסדר את זה? עריכה שוב: שוב אני מנסה עכשיו לעשות את הבדיקה אבל אני פשוט לא יודע איך להתחיל חשבתי אולי לעשות בדיקה על כל אות ז"א a[0], a[1], a[2], a[3], a[4] אבל זה יהיה מטורף אני יצתרך איזה 200 לולאות FOR נראה לי מה אתם אומרים יש דרך יותר קצרה אולי? |
טעית בגדולים
char a[MATRIX_SIZE][MATRIX_SIZE] |
ציטוט:
עריכה: הצלחתי להגיע לדבר כזה: קוד:
C:\C>matrix.exe זה הקוד שעשיתי: קוד:
for(i = 0; i < MATRIX_SIZE; i++) |
כל הזמנים הם GMT +2. הזמן כעת הוא 22:12. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ