מבנים-שפת C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מבנים-שפת C


אתי :)

Recommended Posts

יש לי תוכנית.

זה ה main הראשי.

זה תוכנית שקולטת מבנה של סטודנט למשל.

מישהו יכול להסביר לי אולי מה הטעות שעשיתי ולמה ההדפסה יוצאת לא טוב?

אני רוצה שזה ידפיס לי חמש פעמים כאילו יש חמש סטודנטים ולפעמים זה בורח.

מדפיס פעם שורה אחת למשל רק את השם.פעם רק את השורה של הציון.פעם שלוש פעמים את השם של תלמיד וכוו....

int main()
{
int i=0;
student person[stud]={{0},0};
for (i=0;i<stud;i++)
{
cout<<"please enter your name & last name \n";
gets((person+i)->name);
cout<<"please enter your grade \n";
cin>>(person+i)->grade;
}
ave(person);
max(person);

return 0;
}

[br]פורסם בתאריך: 23.01.2011 בשעה 23:09:19


ניסיתי לעלות תמונה לא ממש הצלחתי...כדי להמחיש את מה שיוצא...איך עושים את זה?

תקנתי את הבעיה תודה :)

קישור לתוכן
שתף באתרים אחרים

ד.א. למה אתה לא כותב person.name? זה קריא יותר.

א.אני בת :)

ב. מה ז"א? לא הבנתי..

לגבי student זה השם של המבנה וstud זה גודל מסויים שהגדרתי כקבוע.

הראתי בכוונה רק את הקטע הזה כי בו הייתה את הבעיה (שהצלחתי לתקן ד"א).

תודה :)

קישור לתוכן
שתף באתרים אחרים

אני מוכן להסתכן בניחוש שהבעיה היא גלישת בקריאת הקלט למחרוזת. במקרה הקיצוני, יתכן אפילו ש-name מוגדר כ-char[1] או משהו כזה. טעות נפוצה של מתחילים.

צדקתי?

בכל מקרה בלי הגדרת student לעולם לא נדע!

קישור לתוכן
שתף באתרים אחרים

  • 2 שבועות מאוחר יותר...

סליחה על הדיליי.

אני לא כזה זוכרת אבל אם אני לא טועה הבעיה הייתה בהדפסה ובלולאה.

לגבי person.name גם אני חושבת שזה הרבה יותר קריא אבל אם אני לא טועה זה גם לא עבד לי בתרגיל הספציפי הזה בגלל זה עשיתי בכוונה person+i)->name

אלה היו המבנים למי שרצה לדעת מזה סטודנט

typedef struct _person_
{
char first[NAME];
char last[NAME];
int ID;
}person;

typedef struct _student_
{
person details;
double grade;
}student;

תודה :)

קישור לתוכן
שתף באתרים אחרים

המבנים שהגדרת לא תואמים את האופן שבו את מנסה להשתמש בהם.

מצד אחד הגדרת מערך של student, מצד שני את מנסה לגשת לשדה name, שבכלל אין ל-person.

חוץ מזה, תימנעי מליצור כפילות של שמות - מצד אחד הגדרת מבנה בשם person, מצד שני את מגדירה מערך של student בשם person.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...