给定两个整数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
结尾无空行
下面是作答
#include<stdio.h>
int main()
{
int A,B,count = 0;
scanf("%d %d",&A,&B);
int i;
for(i=A;i<=B;i++){
printf("%5d",i);
count++;
if(count % 5 == 0){
printf("\n");
}
}
if(count != 5){ // 这句的作用是防止count等于5的时候出现数字行和sum行隔层的情况
printf("\n");
}
printf("Sum = %d",(A+B)*(B-A+1)/2);
}
难点在于:
①什么叫“每个数字占五个字符宽度”
其实就是“%5d”
②怎么让它每5个一断?
利用count计数 ,等到了5的倍数(5除外)直接printf("\n")错行就可以了。