主题:C语言新手问个小小的问题
极光极光
[专家分:0] 发布于 2006-09-22 10:42:00
刚学C语言不久,自己学着编了个小程序,键盘输入3个数,输出最大值,运行达不到目的,请问哪出错了,谢谢!
main()
{
int a,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
max=(a,b,c);
if (a>b>c) max=a;
else if (b>c>a) max=b;
else max=c;
printf("max=%d\n",max);
}
回复列表 (共24个回复)
11 楼
psxfmg [专家分:0] 发布于 2006-11-17 00:48:00
main()
{ int a,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(a<b)max=b;
if(max<c)max=c;
printf("%d",max)
}
12 楼
kulong4567sh [专家分:30] 发布于 2006-11-17 11:11:00
main()
{
int a,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
if (a>b)
{if (b>c) max=a;
else max=c;}
else if (b>c) max=b;
else max=c;
printf("max=%d\n",max);
}
应该这样才对吧!请指教!(请那位大哥大姐帮忙解答下意思好吗?特别是从if(a>b)开始每排后面帮忙解释下什么意思,为什么要这么做好吗?
13 楼
abdyunchen [专家分:30] 发布于 2006-11-18 12:33:00
我自己也编了一个啊
main()
{ int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
max=(a>b?a:b)>c?(a>b?a:b):c;
printf("max=%d",max);
}
14 楼
abdyunchen [专家分:30] 发布于 2006-11-18 12:37:00
13楼的else if (b>c) max=b;
不对
15 楼
vagase [专家分:70] 发布于 2006-11-24 23:41:00
这样应该没有问题的哦,指教.
int max(int x,int y)
{
int z;
(x>y)?(z=x):(z=y);
return(z);
}
void main()
{
int a,b,c,zui;
scanf("%d,%d,%d",&a,&b,&c);
zui=max(max(a,b),c);
printf("%d\n",zui);
}
16 楼
天涯明月客 [专家分:20] 发布于 2006-11-24 23:46:00
呵呵,新手的这个问题,看看书就应该明白了吧,首先max=(a,b,c)就是错误的,这个不是这样的,如果要分函数的话,应该是,max=max(a,b,c),然后后面加一个MAX函数
17 楼
bestgirls [专家分:0] 发布于 2006-11-26 13:06:00
我不会
18 楼
hello8311 [专家分:0] 发布于 2006-11-27 22:09:00
[quote]scanf中的格式控制串中间不应该有","吧!!!?????[/quote]
可以有的
scanf里面有“,”在你输入的时候必须按照SCANF里面的格式输入。
比如
scanf("%d,%d,%d",&a,&b,&c);
你输入的时候必须a,b,c
这样就可以了
19 楼
yaolong [专家分:0] 发布于 2006-11-28 22:02:00
#define max(x,y) ((x)>(y)?(x):(y))
#include <stdio.h>
main()
{
int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
max=(max(a,b),c);
printf("%d\n",max);
}
这样也行![em2]
20 楼
jimmy518 [专家分:0] 发布于 2006-12-15 12:53:00
#include <stdio.h>
int main()
{
int a,b,c,max;
printf("please enter three numbers: \n");
scanf("%d,%d,%d",&a,&b,&c);
if (a>b)
if (a>c) max=a; else max=c;
else
if (b<c) max=c; else max=b;
printf("max=%d\n",max);
getch();
return 0;
}
请指教.
我来回复