//输入范围求范围内整数平方和
# include<stdio.h>
int get_int();
bool bad_limits(int begin,int end,int low,int high);
double sum_squares(int a,int b);
int main()
{
const int MIN=-1000;
const int MAX=+1000;
int start;
int stop;
double answer;
printf("This program computes the sum of the squares of integers in a range.\n"
"The lower bound should not be less than -1000 and\n"
"the upper bound should not be more than +1000.\n"
"Enter the limits (enter 0 for both limits to quit):\n lower limit:");
start = get_int();
printf("upper limit:");
stop=get_int();
while (start!=0 ||stop!=0)
{
if (bad_limits(start,stop,MIN,MAX))
printf("Please try again.\n");
else
{
answer=sum_squares(start,stop);
printf("The sum of the squares of the integers ");
printf("from %d to %d is %g\n",start,stop,answer);
}
printf("Enter the limits (enter 0 for both limits to quit):\nlower limit:");
start = get_int();
printf("upper limit:");
stop=get_int();
}
return 0;
}
int get_int()
{
int input;
char ch;
while (scanf("%d",&input)!=1)
{
while ((ch=getchar())!='\n')
putchar(ch);
printf(" is not an integer.\nPlease enter an");
printf("integer value,such as 25,-178,or 3:");
}
return input;
}
double sum_squares(int a,int b)
{
double total=0;
int i;
for(i=a;i<=b;i++)
total+=i*i;
return total;
}
bool bad_limits (int begin,int end,int low,int high)
{
bool not_good=false;
if (begin>end)
{
printf("%d isn't smaller than %d.\n",begin,end);
not_good=true;
}
if (begin<low||end <low)
{
printf("values must be %d or greater.\n",low);
not_good=true;
}
if (begin>high||end>high)
{
printf("values must be %d or greater.\n",high);
not_good=true;
}
return not_good;
}
范围内平方和
最新推荐文章于 2022-04-16 20:49:52 发布