1、
#include <stdio.h> #include <stdbool.h> long get_long(void); long square_sum(long num1, long num2); bool get_range(long start, long end, long lower_bound, long upper_bound); int main(void) { long result; const long MIN = -10000L; const long MAX = +10000L; long begin, terminus; printf("the range is -10000 -- +10000. "); printf("please input the lower_bound(0 to quit): "); begin = get_long(); printf("please input the upper_bound(0 to quit): "); terminus = get_long(); while(begin != 0 || terminus != 0) { if(get_range(begin, terminus, MIN, MAX)) { printf("please try again. "); } else { result = square_sum(begin, terminus); printf("squre sum betweent %ld and %ld is %ld. ",begin, terminus, result); } printf("please input the lower_bound: "); begin = get_long(); printf("please input the upper_bound: "); terminus = get_long(); } return 0; } long get_long(void) { long num; char ch; while((scanf("%ld", &num)) != 1) { while((ch = getchar()) != ' ') putchar(ch); printf(" is not num. "); printf("please input num: "); } return num; } long square_sum(long num1, long num2) { long square_sum; int i; for(i = num1; i <= num2; i++) { square_sum += i * i; } return square_sum; } bool get_range(long start, long end, long lower_bound, long upper_bound) { bool tab = false; if(start > end) { printf("start > end!!!! "); tab = true; } if(start < lower_bound || end < lower_bound) { printf("start or end < lower_boudn.!!!!!! "); tab = true; } if(start > upper_bound || end > upper_bound) { printf("start or upper > upper_bound.!!!!! "); tab = true; } return tab; }