#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
如图,输入的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++
哪有返回值呀
要是话说不清楚,你还是贴图吧