A)
main()
{
int a=10,b=20;
swap(&a,&b);
printf("%d%d\n",a,b);
}
swap(int *p,int *q)
{
int *t,a;
t=&a;
*t=*p; *p=*q; *q=*t;
}
B)
main()
{
int a=10,b=20;
swap(&a,&b);
printf("%d%d\n",a,b);
}
swap(int *p,int *q);
{
int t;
t=*p; *p=*q; *q=t;
}
C)
main()
{
int *a=0,*b=0;
*a=10,*b=20;
swap(a,b);
printf("%d%d\n",*a,*b);
}
swap(int *p,int *q)
{
int t;
t=*p; *p=*q; *q=t;
}
D)
main()
{
int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;
swap(x,y);
printf("%d%d\n",a,b);
}
swap(int *p,int *q)
{
int t;
t=*p; *p=*q; *q=t;
}
----------------解决方案--------------------------------------------------------
敲到机器上去试。。。。。
[此贴子已经被作者于2006-2-13 17:51:40编辑过]
----------------解决方案--------------------------------------------------------
我觉得是D。。。
int a=10,b=20,*x=0,*y=0;
*x=&a,*y=&b;
swap(x,y);
这样是不对的。。。。
应该是
swap(*x, *y);
吧。。
[此贴子已经被作者于2006-2-13 17:53:25编辑过]
----------------解决方案--------------------------------------------------------
when i want to ask anyone,i will ask myself first.
what about you?
it is mean that yon can think it first before you ask.
----------------解决方案--------------------------------------------------------
when i want to ask anyone,i will ask myself first.
what about you?
it is mean that yon can think it first before you ask.
不好意思,这个问题是太简单了...
因为我是自学.所以并非很肯定...我在自已电脑试其实就有答案了.
主要是为什么!. 我要的不是答案,而是过程.
----------------解决方案--------------------------------------------------------
呵呵,在学计算机的路上,真正的老师就是自己.
我想真正在学校或是哪听来的东西不过是太表面太基础的了.
你根本没法领悟到其真正的内涵,只有自己去领悟,去思考,自己去验证.
对C的理解,可能每个人都不一样,只有你真正的自己去做出来,那它才是你的C.
对C的学习,是无止境的,任何一个人(我想)不敢说真正的领悟它,除那些狂妄自大的....
学习的过程中有朋友的帮助是好的,每个爱学习的人也都愿意去帮助别人,也同时得到过别人的帮助(包括我)
我还是想说when i want to ask anyone,i will ask myself first.
最重要的是思考的过程.
我不是高手,只是分享一下我的学习体会.
[此贴子已经被作者于2006-2-13 20:01:12编辑过]
----------------解决方案--------------------------------------------------------
我有一个好的将两个数字数值交换的方式,前些日子老师刚给布置的,“不使用中间变量交换两个变量的值”
/*switch two numbers' value*/
#include <stdio.h>
#define MUBER_ZERO 0
/*the function to switch the two numbers value*/
void switch_number(int *a,int*b)
{
*a=*a-*b;
*b=*a+*b;
*a=*b-*a;
}
void main(void)
{
int a =MUBER_ZERO;
int b =MUBER_ZERO;
printf("Please input two numbers .\n");
printf("The NO1:a=");
scanf("%d",&a);
printf("The NO2:a=");
scanf("%d",&b);
printf("a=%d b=%d",a,b);
printf("\n");
switch_number(&a,&b);
printf("a=%d b=%d",a,b);
getch();
}
----------------解决方案--------------------------------------------------------
楼上的
这样做是不是容易溢出呀
----------------解决方案--------------------------------------------------------
我有一个利用异或运算交换两个变量的值
也不用中间变量
swap(int *x, int *y)
{
*a=*a^*b;
*b=*b^*a;
*a=*a^*b;
}
----------------解决方案--------------------------------------------------------
A是正确的,但A还可以精简一下
----------------解决方案--------------------------------------------------------