Logo

רד-בורד: ארכיון

ראשי > תיכנות > שאלה בנוגע ללולאות...C

27/05/2005 13:18:22 s|rok
קוד:#include <stdio.h>

char line[100]; /* line from input */
int total; /* Running total of all numbers so far */
int item; /* next item to add to the list */
int minus_items; /* number of negative items */

main()
{

total = 0;
minus_items = 0;

while (1) {
printf("Enter # to add\n");
printf(" or 0 to stop:");
fgets(line, sizeof(line), stdin);
sscanf(line, "%d", &item);

if (item == 0)
break;

if (item < 0) {
++minus_items;
continue;
}

total += item;
printf("Total: %d\n", total);

}

printf("Final total %d\n", total);
printf("with %d negative items omitted\n",minus_items);

return (0);

}
זהו קוד תוכנית שמחשבת סכום של מספרים... כאשר המס’ הוא שלילי
היא מתחילה את הלולאה מהתחלה... אבל אם המס’ הוא 0 היא יוצאת מהלולאה ואומרת את הסכום הסופי של כל המס’ שהכנסנו...וגם אומרת כמה פעמים ניסינו להכניס מספרים שליליים....

השאלה שלי היא בנוגע למשפט שמופיע במשפט if האמצעי..
לא הבנתי איך בדיוק התוכנית מצליחה "לדעת" כמה פעמים הקלט היה מספר שלילי.... ומה בדיוק ה ++ עושה למשתנה minus_items
תודה,
29/05/2005 12:23:39 s|rok
אוקיי.... הבעיה נפתרה...
< לא רלוונטי יותר ..>
עמודים: 1