CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

一道非常简单的C语言题,求教高手

楼主III(不爱带眼镜的猫)2003-09-01 06:25:57 在 C++ Builder / 基础类 提问

原题,输入A,B,C,3个数,输出其中最大的一个  
  我编的程序:  
  main   (   )  
  {  
  int   a,b,c,d,e;  
  scanf   ("%d,%d,%d",&a,&b,&c);  
  d   =   max   (a,b);  
  if   (d>c)   e=d;  
  else   e=c;  
  printf   ("big=%d",e);  
  }  
   
  int   max(int   x,int   y)  
  {int   z;  
  if   (x>y)   z=x;  
  else   y=z;  
  return   (z);  
  }  
    
  请问:1我编程序的思路对不对?如果不对为什么?  
              2如果对请问我哪步错了,请给我这种思路的正确答案(不要别的思路的)  
              3这个程序编译好执行的时候总是输出163,为什么?  
  我在这里先谢谢各位的指教,不要骂我,我是新手。 问题点数:100、回复次数:12Top

1 楼GeoPhoenix(天鸽)回复于 2003-09-01 07:22:55 得分 40

在max函数里有一点错误  
  int   max(int   x,int   y)  
  {int   z;  
  if   (x>y)   z=x;  
  else   y=z;//错误   应为   z   =   y;  
  return   (z);  
  }  
  还有,数据输入函数scanf我用的过程中从来没用','可修改如下  
  scanf   ("%d%d%d",&a,&b,&c);  
  还有你既然定义了max函数在主函数部分显得有点罗索,总体修改如下:  
  main   (   )  
  {  
  int   a,b,c,e;  
  scanf   ("%d%d%d",&a,&b,&c);  
  e   =   max   (a,b);  
  e   =   max(e,c);  
   
  printf   ("big=%d",e);  
  }  
   
  int   max(int   x,int   y)  
  {int   z;  
  if   (x>y)   z=x;  
  else   z   =   y;  
  return   (z);  
  }  
   
   
  Top

2 楼fathappy(我是猫)回复于 2003-09-01 08:24:46 得分 24

1,你的思路是对的。  
    2。你的错误在max函数中的y=z。楼上的已经写出来了。  
    3   你让你的变量等于一个未赋值的变量,Top

3 楼garay(莲)回复于 2003-09-01 08:33:10 得分 1

你的思路是对的。GeoPhoenix(天鸽)   已经详细的写出来了Top

4 楼Behard(我爱天安门)回复于 2003-09-01 08:59:34 得分 10

main   (   )  
  {  
  int   a,b,c;  
  scanf   ("%d,%d,%d",&a,&b,&c);  
  printf   ("big=%d",max(max(a,b),c));  
  }Top

5 楼linjl(木子)回复于 2003-09-01 09:36:03 得分 1

Behard(我爱天安门),你给人家一新人这么一复杂的嵌套表达式没必要吧。  
  好了,不打屁了,拣分来也。  
  Top

6 楼hong668(心情不错)回复于 2003-09-01 09:41:51 得分 1

来晚了还有分吗?Top

7 楼hellobcb(学海无涯,回头是岸)回复于 2003-09-01 09:53:02 得分 1

当然有啦!Top

8 楼int64(@163.com:所有的程序员都应该团结起来!)回复于 2003-09-01 10:23:42 得分 1

楼主思路正确,但是代码有些复杂了  
  e=max(a,max(b,c));  
  就好了Top

9 楼Cocoky(我爱野百合)回复于 2003-09-01 10:45:10 得分 1

int   max(int   x,int   y)  
  {int   z;  
  if   (x>y)   z=x;  
  else   y=z;  
  return   (z);  
  }  
  错了,应改为:  
  int   max(int   x,int   y)  
  {int   z;  
  if   (x>y)   z=x;  
  else   z   =   y;  
  return   (z);  
  }  
   
  Top

10 楼Cocoky(我爱野百合)回复于 2003-09-01 10:50:05 得分 10

double   max=((a>b)?a:b)>c?((a>b)?a:b):c;就可以了!!!!Top

11 楼swites(难民营中的人)回复于 2003-09-01 11:09:52 得分 10

下面语句都行:  
  1.)int   max(int   x,int   y){return   (x>y)?x:y;}  
  2.)#define   max(int   x,int   y)   (return   (x>y)?x:y;)  
  Top

12 楼III(不爱带眼镜的猫)回复于 2003-09-01 11:49:23 得分 0

呵呵,原来是我犯了低级错误,谢谢各位的指教。Top

相关问题

  • C语言简单问题
  • 寻找c,c++语言,简单问题
  • 简单C语言字符串问题
  • 一个简单的C语言问题
  • 简单的C语言的问题:
  • 很简单的问题(C语言)
  • 简单的C语言指会问题!
  • 几个简单的c语言问题!
  • C语言最简单的问题
  • 请教一道C语言题,简单!!

关键词

  • 函数
  • max
  • 思路
  • scanf
  • 错误
  • 程序
  • big
  • printf
  • else
  • main

得分解答快速导航

  • 帖主:III
  • GeoPhoenix
  • fathappy
  • garay
  • Behard
  • linjl
  • hong668
  • hellobcb
  • int64
  • Cocoky
  • Cocoky
  • swites

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo