这个题有问题肯定是在每5个数字占一行,每个数字占5个字符宽度,向右对齐。
题目
给定两个整数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
解决方法
for(i=A;i<=B;i=i+5) { for(j=i;j<=i+4;j++) { if(j>B) break; Sum=Sum+j; printf("%5d",j); } printf("\n"); }
1,使用循环嵌套
2,每5个数字占一行,是最外层的循环 for(i=A;i<=B;i=i+5){}
3,每个数字占5个字符宽度,printf("%5d",j);
如果是向左对齐,printf("%-5d",j);
正确代码
#include<stdio.h>
int main()
{
int A,B,count=0;
scanf("%d %d",&A,&B);
int i,j,Sum=0;
for(i=A;i<=B;i=i+5)
{
for(j=i;j<=i+4;j++)
{
if(j>B)
break;
Sum=Sum+j;
printf("%5d",j);
}
printf("\n");
}
printf("Sum = %d",Sum);
return 0;
}