给定两个整数A和B,输出从A到B的所有整数以及这些数的和。
输入格式:
输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。
输出格式:
首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。
输入样例:
-3 8
输出样例:
-3 -2 -1 0 1
2 3 4 5 6
7 8
Sum = 30
我的代码:
思路:考虑用循环打印数字,累加求数字和,并记录打印数字的个数便于每打印5个数字便换行。
重点注意:重点考虑打印数字和之前需不需要换行:如果打印的数字个数刚好为5的倍数则不用换行,(因为之前打印数字时,每打印5个便换行),否则需要换行
#include <stdio.h>
void OutputSum(int x1,int x2) //求整段和函数
{
int count=0; //记录打印数字的个数,对5求余为0则换行
int sum=0; //初始化和为0
if(x1<-100||x1>x2||x2>100) //输入的两个数字不满足条件
return 0;
else
{
for(int i=x1;i<=x2;i++)
{
sum=sum+i; //累加求和
printf("%5d",i);
count++;
if(count%5==0) //每行打印5个数字便换行
printf("\n");
}
if(count%5!=0) //打印最后一个数字时没有换行,则打印全部数字和之前需要换行
printf("\n");
printf("Sum = %d\n",sum);
}
}
int main()
{
int A,B;
scanf("%d%d",&A,&B);
OutputSum(A,B);
return 0;
}
共有条评论 网友评论