主题:使用指针交两个数的值!!!
cjw20098
[专家分:30] 发布于 2007-04-07 11:26:00
请,高手指点迷金啊
回复列表 (共9个回复)
沙发
Zero1 [专家分:710] 发布于 2007-04-07 11:58:00
好像是这样的:
void exch(int *m,int *n)
{
int *tmp;
tmp=m;m=n;n=tmp;
}
板凳
cjw20098 [专家分:30] 发布于 2007-04-07 12:21:00
不行啊,怎么办
3 楼
Zero1 [专家分:710] 发布于 2007-04-07 12:46:00
贴上你的程序,ok ?
4 楼
cjw20098 [专家分:30] 发布于 2007-04-07 12:50:00
我不会啊
5 楼
cjw20098 [专家分:30] 发布于 2007-04-07 12:51:00
#include<stdio.h>
void main()
{
int i,max,min,num[5];
printf("请输入五个数:\n");
for(i=0;i<5;i++)
scanf("%d",&num[i]);
max=min=num[0];
for(i=0;i<5;i++)
{
if(max<num[i])
max=num[i];
if(min>num[i])
min=num[i];
}
printf("\n最大值是:%d",max);
printf("\n最小值是:%d\n",min);
}
这里的max=min=num[0];是什么意思??
6 楼
Zero1 [专家分:710] 发布于 2007-04-07 15:39:00
max=min=num[0]; //给max,min赋初值
不知道着程序跟“使用指针交两个数的值!!!”有什么关系。。。?
ps:要养成良好的习惯:
int main(int argc,char *argv[])
{
... ...
return 0;
}
7 楼
雨中飞燕 [专家分:18980] 发布于 2007-04-07 20:03:00
[quote]好像是这样的:
void exch(int *m,int *n)
{
int *tmp;
tmp=m;m=n;n=tmp;
}[/quote]
明显错误。。。。。。
应该是
void exch(int *m, int *n)
{
int tmp;
tmp=*m;*m=*n;*n=tmp;
}
8 楼
Zero1 [专家分:710] 发布于 2007-04-07 22:20:00
[quote][quote]好像是这样的:
void exch(int *m,int *n)
{
int *tmp;
tmp=m;m=n;n=tmp;
}[/quote]
明显错误。。。。。。
应该是
void exch(int *m, int *n)
{
int tmp;
tmp=*m;*m=*n;*n=tmp;
}[/quote]
我错了!! 画画图看看确实是错了,真的错了!!!罪过~~ 谢过指正!!
ps:
C语言中实参变量和形参变量之间的数据传递是单向的“值传递”;指针变量作为函数参数也要遵循这一原则; 调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值!!
9 楼
雨中飞燕 [专家分:18980] 发布于 2007-04-08 09:35:00
[quote]我错了!!画画图看看确实是错了,真的错了!!!罪过~~ 谢过指正!!
[/quote]
画画图。。。。。。。。。。。
我来回复