为什么a的值不能够录入

#include<stdio.h>

int main()
{
int a, b, c, d;
a = 0;
scanf("%d", &a);
b = a++;
c = ++a;
// a = b += c++ - a;//存疑
printf("%d\n", b);//加一前
printf("%d\n", c);//加一后
printf("%d\n", a);
d = b % c;
printf(" %d\n", d);
return 0;
}
返回值被忽略
scanf 第七行
且程序不能执行

已找到解决办法,详见https://ask.csdn.net/questions/7698227

img

如图,输入的4;
++在后面,a先把值赋给b,然后在加1,可以看出执行 b=a++ 前a还是4,执行时直接把a值给了b,然后再加1,a值成为5。
同理,a已经为5了,C=a+1=6,++在a前面,先执行+1操作。
得解~

代码运行没有问题。分解见注释,供参考:

#include<stdio.h>
int main()
{
    int a, b, c, d;
    a = 0;
    scanf("%d", &a); //假如输入:5 ,则 a = 5.
    b = a++;  //这句分解为:b = a; a++;  b=a=5; a++ -> a=6;  
    c = ++a;  //这句分解为:++a; c = a;  ++a -> a = 7; c=a=7;
    printf("上面两句执行完,a = %d ,b = %d,c = %d\n", a, b, c);
    a = b += c++ - a;//存疑 这句分解为:b += c - a;  a = b ; c++; b += c - a = 5 + 7 - 7 = 5; a = b = 5; c++ -> 8
    printf("b=%d\n", b);//加一前
    printf("c=%d\n", c);//加一后
    printf("a=%d\n", a);
    d = b % c;
    printf("d=%d\n", d);
    return 0;
}

不能执行啥意思,我这能运行到底啊

你到底是C还是C++
哪有返回值呀
要是话说不清楚,你还是贴图吧