fahrenheit2.c (827B)
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define FALLBACK_LOWER 0 5 #define FALLBACK_UPPER 100 6 #define FALLBACK_STEP 10 7 8 float celsius(int fahr){ 9 return (fahr - 32) * (5.0 / 9.0); 10 } 11 12 13 int main(int argc, char** argv){ 14 15 16 int lower, upper, step; 17 18 lower = FALLBACK_LOWER; 19 upper = FALLBACK_UPPER; 20 step = FALLBACK_STEP; 21 22 if (argc >= 2){ 23 lower = atoi(argv[1]); 24 } 25 if (argc >= 3){ 26 upper = atoi(argv[2]); 27 } 28 if (argc >= 4){ 29 step = atoi(argv[3]); 30 } 31 if (argc >= 5){ 32 printf("Too many arguments. Usage: fahr {lower} {upper} {step}\n"); 33 return -1; 34 } 35 36 if (step <= 0){ 37 printf("Positive steps only\n"); 38 return -1; 39 } 40 41 for(int fahr = lower; fahr < upper ; fahr += step){ 42 printf("%5d %6.1f\n", fahr, celsius(fahr)); 43 } 44 }