易码技术论坛

 找回密码
 加入易码
搜索
查看: 306376|回复: 8

高手帮忙,关于C的一道题

[复制链接]
发表于 2007-6-10 16:11:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2007-6-10 18:21:45 | 显示全部楼层
*m=w;
*n=u;
首先指针就是无效的,直接赋值当然有错.
maxandmin(x,y,z,*m,*n);
后两个参数传递的是指针,而不是指针的值.
发表于 2007-6-11 01:00:24 | 显示全部楼层
呵呵,楼上正解
 楼主| 发表于 2007-6-15 18:14:35 | 显示全部楼层
void maxandmin(int a, int b, int c, int *pmax, int *pmin)
{ int max,min;
  max=a;
  if(b>max)max=b;
  if(c>max)max=c;
  min=a;
  if(b<min)min=b;
  if(c<min)min=c;
  *pmax=max;
  *pmin=min;
}
main()
{ int x,y,z,m,n;
  printf("please input three numbers:\n");
  scanf("%d%d%d",&x,&y,&z);
  maxandmin(x,y,z,&m,&n);
  printf("max=%d,min=%d\n",m,n);
}

谢谢各位的帮忙,这下终于可以运行了,但老师要求把m,n定义成指针,没办法还是不会。
发表于 2007-6-15 18:51:35 | 显示全部楼层
这样:

main()
{ int x,y,z,max,min;
int *m = &max;
int *n = &min;
printf("please input three numbers:\n");
scanf("%d%d%d",&x,&y,&z);
maxandmin(x,y,z,m,n);
printf("max=%d,min=%d\n",max,min);
}
 楼主| 发表于 2007-6-15 20:26:09 | 显示全部楼层
谢谢大家的帮助,总算是作出来了。
发表于 2007-6-16 07:47:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2007-6-16 10:49:33 | 显示全部楼层
C最关键的核心就是指针和引用
好好研究吧`
 楼主| 发表于 2007-6-10 15:21:15 | 显示全部楼层 |阅读模式
正在学C遇到一问题,题目大致是这样的:利用指针在被调用函数里将输入的三个数里最大的和最小的选出来。

这是我根据谭浩强教授答案提示做的,不知道什么地方错了,请高手指点一二。
void maxandmin(int a, int b, int c, int *pmax, int *pmin)
{  int max,min;
  max=a;
  if(b>max)max=b;
  if(c>max)max=c;
  min=a;
  if(b<min)min=b;
  if(c<min)min=c;
  *pmax=max;
  *pmin=min;
}
main()
{  int x,y,z,w,u;
  int *m,*n;
  *m=w;
  *n=u;
  printf("please input three numbers:\n");
  scanf("%d%d%d",&x,&y,&z);
  maxandmin(x,y,z,*m,*n);
  printf("max=%d,min=%d\n",w,u);
}


下面的是我自己写的,运行结果完全正确,但好象思路没有上面的简练。
xzdx(p1,p2,p3)
int *p1,*p2,*p3;
{  
  int t;
  if(*p1<=*p2)
  {  
    t=*p2;  *p2=*p1;  *p1=t;
  }
  if(*p1<=*p3)
  {  
    t=*p3;  *p3=*p1;  *p1=t;
  }
  if(*p2<=*p3)
  {  
    t=*p3;  *p3=*p2;  *p2=t;
  }
}
main()
{  
  int a,b,c,*pa,*pb,*pc;
  printf("please enter three numbers:\n");
  scanf("%d%d%d",&a,&b,&c);
  pa=&a;
  pb=&b;
  pc=&c;
  xzdx(pa,pb,pc);
  printf("max=%d,min=%d\n",a,c);
}
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-24 20:43 , Processed in 0.016014 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表