不引用外部变量交换两个值
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 07:14:58
t=n;\x09n=m;m=t;你的顺序写错了,把m=t放到最下面,t开始是空赋值给m就错了
#includemain(){inta,b,x;scanf("%d%d",&a,&b);x=a;a=b;b=x;printf("a=%d,b=%d\n",a,b);}
#include<stdio.h>voidmain(){voidswap();//给函数做声明externinta,b;//定义变量a,b且他们是外部变量a=3;b=10;//赋值语句sw
变量的引用过程,类似于栈.就是说编译器从变量引用处以最近逻辑距离开始搜索,找到后则开始使用停止则停止搜索;如果查找失败则编译出错.举个例子来说,就是优先引用函数内部的(逻辑距离最近),其次引用同一个源
正确的是:两个都不行.第一个改一下还可以,改正如下:funa(int*x,int*y){intp;p=*x;*x=*y;*y=p;}//改了p的类型
#includeintmain(){\x09inta,b;\x09scanf("%d%d",&a,&b);\x09a=a+b;\x09b=a-b;\x09a=a-b;\x09printf("%d%d"
程序用什么语言?“writeln(a:5,b:5)”是以场宽5输出a、b的意思.
intk,m,n;m=1;n=2;k=m;m=n;n=k;再问:要完整版的。。。再问:要完整版的。。。再答:你不会是在考试吧?#includevoidmain(){inta,b,k;printf("请
你这个问题也太简单了吧,看来你是初学者:#includevoidmain(){inta,b,t;scanf("%d%d",&a,&b);t=a;a=b;b=t;printf("\n%d%d\n",a,
#includevoidfun(int*a,int*b){inttemp;temp=*a;*a=*b;*b=temp;}main(){inta=1;intb=2;fun(&a,&b);printf("
a=10;b=12;a=b-a;//a=2;b=12b=b-a;//a=2;b=10a=b+a;//a=10;b=10
第二行的字母是PEINT不是PRINT.不是输出的意思.再问:打错了是PRINT。。。再答:那估计是印多了吧,这种问题大可不必理他。。再问:..课本也印多了??不过我是觉得不用输出啦你觉得呢再答:是啊
#includeusingnamespacestd;//传值调用voidchuanzhi(inta,intb){intt=a;a=b;b=t;cout
再问:谢了再问:还有一个问题再问:在吗
a+=b;b=a-b;a=a-b;前提是a+b不会溢出.麻烦采纳,谢谢!
k=m;m=n;n=k;
a=a^b;b=b^a;a=a^b;
a=3;b=5;a=a^b;b=b^a;a=a^b;
inta=?intb=?intt=0;if(a>=b){t=a;a=b;b=t;}
当然是错的.你可以运行下试试.假设A=1,B=2运行完"A=B"后A=2,B=2,然后运行"B=A"后B=2,A和B都是2,没有完成交换.而x的作用是做辅助空间存储下A的值,避免被B的值覆盖.这种变量