m0_63242794 2021-11-18 01:00 采纳率: 100%
浏览 25
已结题

输出整数各位数字,想不到为啥不对

为啥我这个不对
int main()
{
int n,i=1,g,m,p;
scanf("%d",&n);
while(n/10>0){
n=n/10;
i++;
} p=i-1;
for(g=1;g<=i;g++){

        m=n/((int)pow(10,p));
        printf("%d ",m);
        n%=(int)pow(10,p);
        p--;
}
reruen 0;

}

  • 写回答

2条回答 默认 最新

  • 关注

    return 写错了
    while循环之后n成个位数了,应该用别的变量代替n来除以10计算位数

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int n,b, i = 1, g, m, p;
        scanf("%d", &n);
        b = n;
        while (b / 10 > 0)
        {
            b = b / 10;
            i++;
        }
        p = i - 1;
        for (g = 1; g <= i; g++)
        {
            m = n / ((int)pow(10, p));
            printf("%d ", m);
            n %= (int)pow(10, p);
            p--;
        }
        return 0;
    }
    

    如有帮助,望采纳!谢谢!

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

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月18日