菜鸟问题:输入三个数,取最大值

anticrack 2003-02-24 10:17:54
编写一个c程序,输入a,b,c三个值,输出其中最大者

程序原代码如下

#include <stdio.h>
main()
{ int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d",e);
}

int max(int w,int x,int y);
{int z

下面该如何判断三个数的大小问题?……

谢谢
...全文
379 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2003-02-25
  • 打赏
  • 举报
回复
上面程序需要#include <stdarg.h>
shine333 2003-02-25
  • 打赏
  • 举报
回复
#define EON -32768

int vmax(int *large,...){
int num;
va_list num_ptr;
va_start(num_ptr,large);
*large=va_arg(num_ptr,int);
while((num=va_arg(num_ptr,int))!=EON){
if(num>*large) *large=num;
}
va_end(num_ptr);
}

可以对随意多个参数使用,不过最后一个应该是EON,让程序知道不定个数的参数表已经结束,比如 vmax(1,2,3,4,5,6,EON);
anticrack 2003-02-25
  • 打赏
  • 举报
回复
这个题目是老谭的c的第一章的课后练习题,kao tmd可能做的出来么? 胡说~
anticrack 2003-02-25
  • 打赏
  • 举报
回复
菜鸟再问:

请问void main() 和main()之间的差异?
aitforever 2003-02-25
  • 打赏
  • 举报
回复
有意思!
zghello 2003-02-25
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{ int a,b,c,m;
scanf("%d,%d,%d",&a,&b,&c);
printf("max=%d",(m=(a>b? a:b))>c?m:c);

}

zhouhj11 2003-02-25
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d",d);
}

int max(int w,int x,int y);
{int z;
z=w>x?w:x;
z=z>y?z:y;
return(z);
}

晨曦2003 2003-02-24
  • 打赏
  • 举报
回复
楼上的看是看懂了,但是要自己写出来估计还是有一定的难度的。

再请教一下您

if(x > y && x > w)
这里的两个&是起什么作用的?

---------------------------------------------
&&运算符是与操作
即x > y 成立,而且x > w 也要成立,则满足if的条件,执行其控制的语句。
Frank001 2003-02-24
  • 打赏
  • 举报
回复
建议楼主去看书。
钱能的书不错。
hot1985 2003-02-24
  • 打赏
  • 举报
回复
mark
laomai 2003-02-24
  • 打赏
  • 举报
回复
if(a>b)
{
if(z>a)
return z;
else
return a;
}
else
{
if(z>b)
return z;
else
return b;
}
anticrack 2003-02-24
  • 打赏
  • 举报
回复
用if是太麻烦了,但是没办法呀,刚开始学c 不会阿
anticrack 2003-02-24
  • 打赏
  • 举报
回复
楼上的看是看懂了,但是要自己写出来估计还是有一定的难度的。

再请教一下您

if(x > y && x > w)
这里的两个&是起什么作用的?
laomai 2003-02-24
  • 打赏
  • 举报
回复
呵呵,用if太麻烦了.
if(a>b)
{
if(z>a)

}
晨曦2003 2003-02-24
  • 打赏
  • 举报
回复
看不懂他的高难的,就看我的。我的好懂些:

#include<stdio.h>
int max(int w,int x,int y)
{
if(x > y && x > w)
return x;
else if(y > w)
return y;
else
return w;
}

#include <stdio.h>
void main()
{ int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d",d);
}

你源程序中还几处错误,一并改了。
laomai 2003-02-24
  • 打赏
  • 举报
回复
?:是一个三元运算符
其语法形式为
表达式1?表达式2:表达式3
当表达式1为真时,整个式子返回表达式2的值,当表达式1为假时,整个式子返回表达式3的值,
例如
(a>b?a:b) //返回的是a、b中的大值
所以retrun(z>(a>b?a:b)?z:(a>b?a:b))实际上可拆写为
int c=(a>b?a:b)
return (c>a?a:b)
anticrack 2003-02-24
  • 打赏
  • 举报
回复
结合我的问题,能用if else语句写吗?谢谢
anticrack 2003-02-24
  • 打赏
  • 举报
回复
retrun(z>(a>b?a:b)?z:(a>b?a:b))

完全看不懂…… 偶是看谭浩强的c语言程序设计 刚看第一章

“?”代表什么意思?“:” 又代表什么意思?请指教。
kuhx 2003-02-24
  • 打赏
  • 举报
回复
学习
laomai 2003-02-24
  • 打赏
  • 举报
回复
return(z>(a>b?a:b)?z:(a>b?a:b))

70,032

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧