注册 登录
编程论坛 C语言论坛

初学者:三个数中求最大值用java的方法,使用c语言写运行显示最小值

yangtanzheng 发布于 2019-07-01 18:28, 2248 次点击
#include <stdio.h>
int main(){
int max(int a,int b,int c);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
return 0;
}
int max(int a,int b,int c){
    int k;
    if(a<b){
        if(b>c)k=b;
        else k=c;
        }
    else{
         if(a>c)k=a;
         else k=c;
    }
     return(k);
}
5 回复
#2
吕孟伟2019-07-02 08:18
这代码没问题吧。你是不是没输入逗号?
#3
yangtanzheng2019-07-02 10:57
回复 2楼 吕孟伟
我输入5,8,10
输出 max=5;
#4
rjsp2019-07-02 12:03
以下是引用yangtanzheng在2019-7-2 10:57:51的发言:

我输入5,8,10
按你自己的代码 scanf("%d,%d,%d",&a,&b,&c) 来看,你必须输入“5,8,10”或“   5,   8,   10   ”,不能出现中文全角逗号
#5
rjsp2019-07-02 12:08
如果你一定要用逗号作间隔,那么
#include <stdio.h>

int max( int a, int b, int c )
{
    int t = a<b ? b : a;
    return t<c ? c : t;
}

int main( void )
{
    int a,b,c;
    if( 3 != scanf("%d ,%d ,%d",&a,&b,&c) )
    {
        puts( "输入错误." );
        return 1;
    }
    printf( "max = %d\n", max(a,b,c) );
    return 0;
}

如果以空白字符作间隔,那么 scanf("%d ,%d ,%d",&a,&b,&c) 改为 scanf("%d%d%d",&a,&b,&c) 即可。


#6
yangtanzheng2019-07-02 20:28
回复 4楼 rjsp
谢谢大佬  我明白了

1