我爱橙 发表于 2022-4-12 00:22:54

EX2.17 输出一个数的每一位 √

本帖最后由 我爱橙 于 2022-5-4 21:13 编辑

#include<stdio.h>

main()

{

        int n,a,b,c,d;
        scanf ("请输入一个4位正整数:%d",&n);
        a=(n-n%1000)/1000;
        b=(n-a*1000-(n-a*1000)%100)/100;
        c=(n-a*1000-b*100-(n-a*1000-b*100)%10)/10;
        d=n-a*1000-b*100-c*10;
        printf("\"%d\"的千位是\"%d\",百位是\"%d\",十位是\"%d\",个位是\"%d\"",n,a,b,c,d);

        return 0;

}

初始化n的值的话可以得出结果,不初始化则为0,为什么实现不了程序本来用途即输入任意四位数然后运行啊?

wp231957 发表于 2022-4-12 06:47:16

main()这样的函数声明不觉得缺点啥吗
这种书籍或者资料可以抛弃了
不知道你的编译器是啥,如果能通过这样的代码,也可以考虑更换了

傻眼貓咪 发表于 2022-4-12 11:01:57

本帖最后由 傻眼貓咪 于 2022-4-12 11:05 编辑

楼主应该不是第一天写代码吧?还是我误会了什么?不是 C 语言吗?#include <stdio.h>

int main(){ // 主函数不要乱搞!用心写代码
        int num, a, b, c, d;
        printf("请输入一个4位正整数:"); // 输出和输入要分开写
        scanf("%d", &num); // scanf() 只负责输入就好,不要做其它多余的事!
        a = num/1000;
        b = (num%1000)/100;
        c = (num%100)/10;
        d = num%10;
        printf("%d的千位是%d, 百位是%d, 十位是%d, 个位是%d", num, a, b, c, d); // 输出格式严谨一点,不要乱写一通!
        return 0;
}
页: [1]
查看完整版本: EX2.17 输出一个数的每一位 √