#include <stdio.h> void main() { int a=5, b=8; printf(“a=%d b=%d\n”, a,b) ; a=a+b; b=a-b; a=a-b;

printf(“a=%d b=%d\n”, a,b) ;
}

问题是什么,这就是简单的两个数互换啊。
先是输出 a =5 b=8
然后输出 a=8 b=5
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-21
a=5 b=8
a=8 b=5

#include <stdio.h> void main() { int a=5, b=8; printf(“a=%d b...
先是输出 a =5 b=8 然后输出 a=8 b=5

#include <stdio.h> void main() { int a=5, b=8; printf(“a=%d b...
a=8 b=5

#include<stdio.h> void main() { int a=3,b=7; printf("a=%%d,b...
那么上述程序就会输出a=%d,b=%d,而不会输出a,b的值了。两个%%匹配输出了%,后面的d没有%匹配,就只输出d

#include<stdio.h> main(void) { int a = 5,b; b=(++a)+(++a)(++a...
main(void)错了,应为int main(void)或者void main(void)括号里的void可有可无;b=(++a)+(++a)(++a); 这条语句也错了,(++a)(++a)中间应该有个乘号,乘号是不能省略的

#include<stdio.h> void main() { int a,b; scanf("%d%d\\n",&a,&b...
因为整数型a b都没有赋值,int型变量如果没有赋值的话那么变量的值为不确定的数,a,b可能是在范围内的任何数,所以a+b的值也是不确定值。如果给a,b赋值的话结果就有确定值了,比如int a=1,b=2;那么输出结果就是a+b=3.不知道说的清不清楚,希望能帮到你。

#include<stdio.h> main(){ int a=3,b=7; printf("%d\\n",a++ + ++b...
a++是先使用 用完后加1,而++b是先加1,再使用,a++ + ++b相当于a+(1+b),当a用完之后再加上1,后来的b%a b就变成了8,a就变成了4,所以就是4,而前面的a++当用完之后就变成4了。

#include<stdio.h> main() { int a,b; scanf("a= %d,b= %d",&a,&b...
实际上,你这程序是没有错的,只不过一点都不人性化。scanf("a= %d,b= %d",&a,&b); 这条输入语句很有问题,它要求输入的格式应该是:a= 3,b= 5 而不是3 5这样就行的,我建议改成 scanf("%d%d",&a,&b);

...main( ) { int *p1,*p2,*p; int a=5, b=8; p
指向a,p2获得b的地址,指向b;if(a<b) { p=p1;pl=p2;p2=p;},因为5<8,因此执行语句,这是个交换p1,p2指向的语句,所以p1变更为指向b,p2指向a;printf(”%d, %d”,*P1,*P2);表示输出p1,p2所指向位置的值,即8,5.printf(” %d, %d”, a, b);输出a,b的值,即5,8 ...

#include "stdio.h" void main() { int a=5,b;b=(++a)+(++a); printf...
b=(++a)+(++a);即先执行最右面的++a,得到a的结果为6.然后再计算第一个++a,此时的计算基础为6,得到结果为7.这时前后结果就是两个7相加。所以结果为14.这里要注意的就是要把a看成是一个主体。不要用6和7相加,要知道任意一步对a的操作都会影响a的值。理解了吗?

.#include<stdio.h>int a= 5;int b=7;
你这样改,是可以得到答案12,但这不是好方法。正确的方法是将第5行改为:plus(::a,::b);这样::a和::b代表全局变量。但不建议这样做,出现中不要将全局变量与局部变量重名,这样的编程习惯不好,以后程序复杂了,很容易发生错误。

相似回答
大家正在搜