求整数段和
给定两个整数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
思路分析:
问题:
- 输出格式的问题
- 只有一行时应该如何输出
解决:
- 利用一个循环,通过对i%5来进行换行;
- 添加一个计数count,大于5则继续换行,小于5则不换行;
实现代码:
int main(){
int a,b;
int sum = 0;
int i =0;
int count;
scanf("%d %d",&a,&b);
for( int k = a;k <= b;k++){
count++;
}
for(int j = a;j <= b;j++){
printf("%5d",j);
sum += j;
i++;
if(i % 5==0 ) {
if(count > 5)
printf("\n");}
}
printf("\n");
printf("Sum = %d",sum);
}