为了账号安全,请及时绑定邮箱和手机立即绑定

这段代码怎么错了?

这段代码怎么错了?

C
qq_守夜人_11 2017-09-22 20:45:25
#include<stdio.h>int main(){    int max1 (int x,int y,int z);    int a,b,c,max;    printf("请输入三个整数:");    scanf("%d,%d,%d",&a,&b,&c);    max =max1(a,b,c);    printf("最大值是:%d\n",max);    return 0;}int max1(int x,int y,int z){    int max;    if(x>y);    x>z? max = x:max = z;    if(x>z);    x>y?max = x:max = y;    if(y>z);    y>x?max = y:max = z;    return max;}
查看完整描述

3 回答

?
望远

TA贡献1017条经验 获得超1032个赞

int max1(int x,int y,int z)
{
    int max;
    if(x>y);//if判断成立后执行的是空语句,多了;下同
    x>z? max = x:max = z;
    if(x>z);
    x>y?max = x:max = y;
    if(y>z);
    y>x?max = y:max = z;
    return max;
}
//example
int max(int x,int y,int z)
{
    return x>y?(x>z?x:z):(y>z?y:z);
}


查看完整回答
1 反对 回复 2017-09-22
?
冯宝宝

TA贡献31条经验 获得超8个赞

三元操作符合那里有问题   x>z? max = x:max = z;,我是在你自己代码基础上改,你这个算法好坏没有思考。

下面是修改之后的:


#include<stdio.h>

int main()

{

    int max1 (int x,int y,int z);

    int a,b,c,max;

    printf("请输入三个整数:");

    scanf("%d,%d,%d",&a,&b,&c);

    max =max1(a,b,c);

    printf("最大值是:%d\n",max);

    return 0;

}

int max1(int x,int y,int z)

{

    int max;

    if(x>y);

    max=(x>z? x:z);

    if(x>z);

    max=(x>y? x:y);

    if(y>z);

    max=(y>x?y:z);

    return max;

}


查看完整回答
反对 回复 2017-09-23
?
潇潇_暮雨

TA贡献7条经验 获得超1个赞

你在main函数里面引用了max1函数,但是max1函数是之后定义的,要么把max1的定义提到main函数之前,要么在使用之前声明。

查看完整回答
反对 回复 2017-09-23
  • 3 回答
  • 0 关注
  • 1890 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信