עבור לתוכן

מטריצת רשומות ב-C

Featured Replies

פורסם

שלום רב,

אני מנסה לעשות מטריצה שכל ערך יכיל רשומה.

הגדרתי את המטריצה כך:

typedef struct {
char type[255];
char teacher[255];
int room;
} lesson;
typedef lesson lessons[days][hours];

לאחר מכן ניסיתי לכתוב אל כל תא בעזרת:

	for(i=0; i<days; i++)
for(j=0; j<hours; j++)
scanf("%s %s %d", &lessons[i][j].type, &lessons[i][j].teacher, &lessons[i][j].room);

אך הקומפיילר מודיע על שגיאה. מה הבעיה?

תודה רבה לעוזרים,

ערן.

פורסם

ב- scanf, אם אתה קולט לתוך מחרוזת, לא צריך לשים & לפני המשתנה(הפרמטרים השני והשלישי צריכים להיות ללא &).

פורסם
  • מחבר

אין קשר, זה לא חובה, אפשרי לשים.

בכל אופן הסרתי את זה מכיוון שאמרת ונשאר אותה כמות שגיאות,

הוא מודיע משהו Improper use ובשגיאה הראשונה מצביע מתחת ל- הראשון.

פורסם

איזה מינוס ראשון, ומה השגיאה בידיוק?

ד.א. אסור לשים שם &. & מציין כתובת של משתנה מסויים. כשאתה שולח מערכים(או מחרוזות), הקומפיילר דואג לשלוח את הכתובת. אם תשים שם &, זה בעצם ישלח את המקום בזיכרון שהכתובת של המחרוזת נשמרת בה, וזה שגוי.

פורסם
  • מחבר

רשמתי [ i ] פשוט חשבתי שזה לא סוגר אוטומטית תגיות פה וזה יציג.

השגיאה היא Improper use of typedef 'lessons', יש 6 שגיאות כאלה וכל פעם מצביע על [ i ].

פורסם

השגיאה אומרת לך שאתה לא משתמש בlessons בצורה נכונה.

תבדוק מה אתה צריך לשלוח ל- scanf ומה אתה שולח בפועל(רמז: משתנים).

פורסם
  • מחבר

תודה רבה לך, טעות מיותרת, לא הגדרתי משתנה והשתמשתי בשם הסוג החדש שהגדרתי בתור משתנה :xyxthumbs:

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים