这段代码怎么错了?

#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;

}



qq_守夜人_11
浏览 1891回答 3
3回答

望远

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); }

冯宝宝

三元操作符合那里有问题   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;}

潇潇_暮雨

你在main函数里面引用了max1函数,但是max1函数是之后定义的,要么把max1的定义提到main函数之前,要么在使用之前声明。
打开App,查看更多内容
随时随地看视频慕课网APP