Script started on Fri Aug 30 14:33:27 2002 Displaying on dakarnomad.hss.cmu.edu:0.0 [famine]~/F711% dir Directory of brian/F711/ total 120 drwxr-xr-x 2 brian users 4096 Aug 30 13:23 . drwxr-xr-x 70 brian root 8192 Aug 30 14:17 .. -rw-r--r-- 1 brian users 1645 Aug 27 23:37 add.c -rw-r--r-- 1 brian users 0 Aug 30 14:33 bozo.txt -rw-r--r-- 1 brian users 591 Aug 27 12:30 car-gals.dat -rw-r--r-- 1 brian users 709 Aug 27 12:30 car-miles.dat -rw-r--r-- 1 brian users 709 Aug 27 12:30 car-time.dat -rw-r--r-- 1 brian users 173 Aug 26 13:13 cmds.txt -rw-r--r-- 1 brian users 2376 Aug 27 12:30 copenhagenhousing.dat -rwxr----- 1 brian users 13138 Aug 30 13:23 depression.dat -rw-r--r-- 1 brian users 4042 Aug 27 12:30 education.dat -rw-r--r-- 1 brian users 143 Aug 27 12:30 example1 -rw-r--r-- 1 brian users 163 Aug 27 12:30 example2 -rw-r--r-- 1 brian users 189 Aug 27 12:30 example3 -rw-r--r-- 1 brian users 124 Aug 27 12:30 example4 -rw-r--r-- 1 brian users 287 Aug 27 12:30 example5 -rw-r--r-- 1 brian users 124 Aug 27 12:30 example6 -rw-r--r-- 1 brian users 359 Aug 27 12:30 football.dat -rw-r--r-- 1 brian users 3094 Aug 27 12:30 geyser.dat -rw-r--r-- 1 brian users 1081 Aug 28 01:06 makefile -rw-r--r-- 1 brian users 52 Aug 27 12:30 neurological.dat -rw-r--r-- 1 brian users 141 Aug 28 02:51 probierung -rw-r--r-- 1 brian users 65 Aug 27 12:30 README -rw-r--r-- 1 brian users 1223 Aug 28 01:16 roster-header.txt -rw-r--r-- 1 brian users 1154 Aug 26 13:19 roster.txt -rw-r--r-- 1 brian users 441 Aug 27 12:30 singers.dat -rwxr-xr-x 1 brian users 281 Aug 28 03:34 update [famine]~/F711% tpe ype add.c /* Filename: add.c Purpose: add positive numbers from standard input and send results to standard output. End each sum with 0; end program with a negative number or non-number. Alternate version: Runstring argument is number of numbers to add; may contain zero and negative numbers; only does a single sum. You can use, e.g. setenv adddigits 2 to change the number of decimal places in the result. Compile: gcc -oadd add.c Run: "add" or "add < mynums.txt" or "add > rslt" or "add < mynums.txt > rslt" Example: echo 1 2 3 4 5 6 0 7 8 end | add | sort | add 2 */ #include int main(int argc, char **argv) { double sum=0; double input; int count=0, CountTo=0; int numdecimals=4; char *decistring; decistring=getenv("adddigits"); if (decistring!=NULL) numdecimals=atoi(decistring); if (argc>1) CountTo=atoi(argv[1]); while (1) { /* read number from standard input; exit loop if non-numeric */ if (scanf("%lf", &input)!=1) break; count++; /* quit loop if input is negative */ if (CountTo==0 && input<0) break; /* complete current sum if input is zero */ if (CountTo==0 && input==0) { printf("%10.*f\n", numdecimals, sum); sum=0; continue; } /* compute running sum if input is positive*/ sum+=input; /* See if done for argument count version */ if (CountTo>0 && count==CountTo) break; } /* If loop exited without a final zero, print last sum */ if (CountTo>0 || sum>0) printf("%10.*f\n", numdecimals, sum); exit(EXIT_SUCCESS); } [famine]~/F711% gcc -oadd add.c [famine]~/F711% dir ls -al add* -rwxr-xr-x 1 brian users 14393 Aug 30 14:35 add -rw-r--r-- 1 brian users 1645 Aug 27 23:37 add.c [famine]~/F711% add 1 2 3 0 6.0000 20 30 50 0 100.0000 1 2 3 0 20 30 50 0 6.0000 100.0000 -3 [famine]~/F711% ./addexit Script done on Fri Aug 30 14:37:07 2002