这题的关键点:
1.数字如何右对齐:%d中d的前面加数字,如%5d表示包含数字一共占5个单位,不足的在前面补空格,如果位数大于5,则不会起作用;如果是补0则改为%05d;
2.如何在合适的位置换行:本题可以利用左右数字的差值再加1并对5取余来判断是否已经输出了5个数,如果其他题中没有数量关系,可以自己定义n,在执行过程中自增即可 3. 测试点1不通过:因为每输出一整行就会有一次换行,循环结束后再加一个换行再输出sum,但是如果刚好最后一行就是一整行,换行后,循环结束,又会再来一个换行,导致多一次换行格式错误,因此循环体内要加上判断最后是否为一整行的语句 (无非就是判断一下总共的数字是否是5的倍数);
代码 :
#include<stdio.h>
int main(){
int a,b,sum=0;
scanf("%d %d",&a,&b);
for(int i=a;i<=b;i++){
printf("%5d",i);
sum+=i;
if((i-a+1)%5==0&&(b-a+1)%5!=0){
printf("\n");
}
}
printf("\n");
printf("Sum = %d",sum);
return 0;
}