summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/OR_PRACTICAL_C/05_3.c
blob: c3c51e175f5856a3c6d689b45a001b4ff3556efe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
char  line[100];   /* line from input */

/* Running total of all numbers so far */
int   total;       

/* next item to add to the list */
int   item;        

/* number of negative items */
int   minus_items; 

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

        if (item == 0)
            break;

        if (item < 0) {
            minus_items++;
            continue;
        }
        total += item;
        (void) printf("Total: %d\n", total);
    }

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