整数逆序输出——为什么我的输出n为0鸭?需要输出为12345-->54321

img


我的输出为0-->54321
大学C语言对于电脑笨蛋来说真的好难呀
求解❤
🌹🌹

整体的思路没问题,已经很棒啦~
在第10行到14行的时候,n的值已经被改变了,最后的n为0。
如果需要输出原始的n的话,可以再用变量t保存一下。
还有就是int类型的在scanf和printf的时候最好用%d,而不是%ld(long类型)

#include <stdio.h>

int main(){
    int n,m,i;
    scanf("%d",&n);
    if(n<=-100000||n>=100000){
        printf("ERROR");
    }else{
        int t=n;
        m=0;
        do{
            i=n%10;
            n=n/10;
            m=m*10+i;
        }while(n);
        printf("%d-->%d",t,m);
    }
    return 0;
}

img

你在循环里把n修改没了,肯定是0了呀
再建个变量循环前先把n存下来
另,%ld对应的是long型
int型要写%d

修改如下,供参考:

img

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7572673
  • 以下回答由chatgpt基于相关博客总结生成:

    修改后的代码:

    int max(int a, int b) {
        if(a > b)
            return a;
        else
            return b;
    }
    
    int main() {
        int max, x, y;
        printf("输入两个整数,用空格隔开:");
        scanf("%d%d", &x, &y);
        max = max(x, y);
        printf("max=%d\n", max);
        return 0;
    }
    

    段落2: 关于整数逆序输出的问题,可以使用以下代码实现:

    #include <stdio.h>
    
    int main() {
        int num, res = 0;
        printf("请输入一个整数:");
        scanf("%d", &num);
    
        while(num) {
            res = res * 10 + num % 10;
            num /= 10;
        }
    
        printf("逆序输出的结果为:%d", res);
        return 0;
    }
    

    帮助和建议: 1.建议多做练习,掌握基本语法和常用算法; 2.多实践,有一定的项目经验对未来就业会有很大的帮助; 3.关注技术和行业动态,保持学习的热情; 4.在学术交流和社区互动中提升自己的技能水平。