
09-12-2007, 11:16
|
|
|
|
חבר מתאריך: 26.11.07
הודעות: 12
|
|
אוקי
אני כתבתי קוד מסויים שבחלק הראשון שלו התוכנית מקבלת כמה קבוצות של מספרים וכל קבוצה אני שמה ברשימה מקושרת חדשה.אני גם שומרת את הרשימות אבל זה לא חשוב עכשיו
אני לא יכולה לדעת מההתחלה כמה מספרים אמורים להיות בכל רשימה אז אני כתבתי (רק בשביל להמשיך את הקוד) שקליטת המספרים תסתיים כשנקלט המספר 90
למשל אם הקלט היה :
2,3,4,90
הרשימה הייתה נראה ככה:
head,2,3,4,NULL
ואז הייתה נפתחת רשימה חדשה, ששוב הייתה מקבלת את המספרים שכתבתי עד שהיא מקבלת את המספר 90
וככה מספר קבוע של רשימות, למשל 3 רשימות.
כשהזקיף הוא 90 התוכנית עובדת מעולה אבל כשאני שמה את תנאי שיהיה קשור ל cin.eof התוכנית בונה את הרשימה הראשונה, אבל כשצריך לבנות את הרשימה השניה התוכנית נתקעת.
הינה הקוד
קוד:
List *GetList()
{
List *result; //ליסט זה סוג הרשימה
int num;
List *p;
cout << "Enter a number: ";
cin >> num;
if(num==90)
return NULL;
result=p=new List;
result->value=num;
result->next=NULL;
cout << "Enter a number: ";
cin >> num;
while(num !=90)
{
result->next=new List;
result=result->next;
result->value=num;
result->next=NULL;
cout << "Enter a number: ";
cin >> num;
}
result=p;
return result;
}
מה אני צריכה לשנות שזה כן יעבוד כשמגיע סוף הקלט?
סוף הקלט- כשלוחצים
CTRL +Z
|