c语言两个问题 谢谢

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:01:07
1 输入4 5 + 得到结果是9
输入9 3 / 得到结果是3
用程序写怎么写?
2 ++a*--a结果是多少?a=4
结果应该是16吧?为什么?要详细的解答?

谢谢 本人自学中 很多不懂谢谢

1.
#include <stdio.h>
int main()
{
int a, b, r=0; //要初始化
char c;
scanf("%d%d%c", &a, &b, &c);
switch(c)
{
case '+':r = a+b;break;
case '-':r = a-b;break;
case '*':r = a*b;break;
case '/':r = a/b;break;
case '%':r = a%b;break;
}
printf("%d\n", r);
return 0;
}

2.
不同的编译器会有不同的结果的!
个人认为自加和自减都是在前面,应该要先做++和--运算先!a先自加为5,再自减为4, 结果是5*4=20

第二个,先算乘法,后进行++ --运算

#include <stdio.h>
int main()
{
int a, b, r;
char c;
scanf("%d%d%c", &a, &b, &c);
if(c=='+') r = a+b;
else if(c=='/') r = a/b;
printf("%d\n", r);
return 0;
}

2, 21
++a* = 16 a = 5;

++a*--a = 16--a = 16-(-5) = 21;

第2个问题是这样的:
先 --a a = 3
再 ++a a = 4
最后 a * a = 16