小鸟游菜花 2022-02-17 10:07 采纳率: 84.6%
浏览 43
已结题

这是什么原因啊,可以说一下理由吗

img


#include<stdio.h>
int b[100];
int main()
{
    int a,j=0,i;
    while(1)
    {
        scanf("%d",&a);
        if(a==0)
        break;
        b[j]=a;
        j++;
    }
    for(i=j-1;i>=0;i--)
    {
        printf("%d",&b[i]);
    }
    return 0;
}

img

  • 写回答

3条回答 默认 最新

  • 谛凌 2022-02-17 10:28
    关注

    printf("%d",&b[i]);
    17行 应该去掉取地址符 & :
    printf("%d ",b[i]);
    原因:你写&b[i]是取地址,输出的是 b[i] 的地址,而不是 b[i] 的值
    你可以看看输出4223064 4223060 4223056 这都是 b[i] 的地址

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月17日