我写的这个程序和标准的有什么区别⊙_⊙

为什么我写的这个运行不了?
哪个地方有问题吗?
printf地方报错

img

img


img

1.首先scanf()是格式化输入函数,里面只能包含格式化字符串,比如%c字符型、%s字符串型、%d整型、%f浮点型等等,你那个\n是换行,在输入的时候,会被吃掉。
2.求百位:直接/100,例如246/100=2
3.求十位:有两种方法,第一种/10%10,例如246/10=24,然后24%10=4;第二种%100/10,例如246%100=46,然后46/10=4
4.求个位:直接%10,例如246%10=6
5.求百位和个位只有一种方法,求十位有两种,就是简单的/和%运算,多练练
6.不理解可以私信一下我,看下方代码

// 输入一个整数,依次输出百位、十位、个位
// 百位:x  -> num/100
// 十位:y  -> 第一种:num/10%10    第二种:num%100/10
// 个位:z  -> num%10
#include <stdio.h>

int main()
{
    int num, x, y, z;
    scanf("%d", &num);

    x = num / 100;
    y = num / 10 % 10; // y = num % 100 / 10;
    z = num % 10;

    printf("百位:%d,十位:%d,个位:%d", x, y, z);
    return 0;
}
246
百位:2,十位:4,个位:6

img

大致改写了一下程序,你可以试试,作为参考:

#include<stdio.h>

int main()
{
    int a,ge,shi,bai;
    scanf("%d",&a);
    ge=a%10;
    shi=a/10%10;
    bai=a/100;
    printf("%d,%d,%d",bai,shi,ge);
    return 0;
}

运行测试:

img

供参考:

#include <stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    printf("百位=%d, 十位=%d, 个位=%d\n", a / 100, a / 10 % 10, a % 10);
}

在电脑上规范的写一下 ,再加上return 0,注意符号是英文状态的,就不会报错哦