「已注销」 2022-05-05 18:38 采纳率: 100%
浏览 19
已结题

对一维数组逆序排列,数据输出时宽度为4

问题遇到的现象和发生背景

这是题目

img

问题相关代码,请勿粘贴截图

#include<stdio.h>
#define N 10
int main()
{
int a[N],i,b;
for(i=0;i<N;i++)
{
scanf("%d",&b);
char c=getchar();
a[i]=b;
if(c!=' ')break;
}
for(i=N-1;i>=0;i--)
printf("%4d ",a[i]);
return 0;
}

运行结果及报错内容

运行结果是这样的

img

我的解答思路和尝试过的方法

想知道为什么输出中写了%4d为什么还是会输出7位数字,应该怎么改正呢

我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 我真的不是cjc 2022-05-05 19:01
    关注

    代码如下,望采纳

    
    #include<stdio.h>
    
    int main() {
        int a[10];
        for(int i=0; i<10; i++)
            scanf("%d", &a[i]);
        for(int i=9; i>=0; i--) {
            if(a[i]<10000)
                printf("%4d", a[i]);
            else
                printf(" %d", a[i]);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 5月5日