为什么运行出来什么都没有呀

img


    int contrast(int x,int y,int z);
    
    int main()
{
    int a,b,c;
    printf("请输入三个整数:");
    scanf("%d %d %d", &a,&b,&c);
    int    contrast(a,b,c);
    return 0;
}
    int contrast(int x,int y,int z)
{
    int max;
    x=max;
    if(x>y)
    {
        if(x>z)
        {
            printf("max is a\n");
        }else{
            printf("max is z\n");
        }
    }
    else
    {
        if(y>z){
            printf("max is y\n");
        }else{
            printf("max is z\n");
        }
        
    }
    return 0;
}

因为在main函数调用contrast函数的方法错了,应该去掉前面那个int,加上int代表的是函数声明,它和函数调用不同;然后根据代码比较大小的逻辑,把contrast函数里的x赋值为max去掉, 修改如下:

 #include <stdio.h> 
    int contrast(int x,int y,int z);
    
    int main()
{
    int a,b,c;
    printf("请输入三个整数:");
    scanf("%d %d %d", &a,&b,&c);
    contrast(a,b,c);
    return 0;
}
    int contrast(int x,int y,int z)
{
    int max;
    //x=max;
    if(x>y)
    {
        if(x>z)
        {
            printf("max is a\n");
        }else{
            printf("max is z\n");
        }
    }
    else
    {
        if(y>z){
            printf("max is y\n");
        }else{
            printf("max is z\n");
        }
        
    }
    return 0;
}
 

img

参考:可行的话 还望采纳:

代码如下:

#include <stdio.h>

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

int main()
{
    int a, b, c;
    printf("请输入三个整数:");
    scanf("%d %d %d", &a, &b, &c);
    contrast(a, b, c);
    return 0;
}

int contrast(int x, int y, int z)
{
    int max = x;
    if (y > max)
        max = y;
    if (z > max)
        max = z;
    printf("最大值是:%d\n", max);
    return 0;
}


因为你把函数声明了2遍,而没有调用

int main()
{
    int a,b,c;
    printf("请输入三个整数:");
    scanf("%d %d %d", &a,&b,&c);
    contrast(a,b,c);
    return 0;
}

函数的调用不需要加类型声明:

int main()
{
    int a, b, c;
    printf("请输入三个整数:");
    scanf("%d %d %d", &a, &b, &c);
    // int contrast(a, b, c);
    contrast(a, b, c);
    return 0;
}