C用于查找最大值

时间:2016-02-13 13:20:12

标签: c

如何编写一个C函数,它将三个整数作为参数并返回最大值的值。

int largest(int x,int y,int z)
{
    int val1,val2,val3;
    int maximum;

     printf("enter value \n");
     scanf("%d",&val1,&val2,&val3);

     maximum=largest(val1,val2,val3);

      printf("the largest integer is %d = \n",maximum);
     return 0;
    }

int largest(int x,int y,int z)
{
    if(x>=y && x>=z)
         printf("Largest number = %d", x);
    if(y>=x && y>=z)
         printf("Largest number = %d", y);
    if(z>=x && z>=y)
         printf("Largest number = %d", z);                  
    }

我已经尝试过这些代码,但它们不起作用我需要帮助,请我也是这个

的初学者

4 个答案:

答案 0 :(得分:2)

这应该可以正常工作。

     int val1,val2,val3;
     int maximum;

     printf("enter value \n");
     scanf("%d %d %d",&val1,&val2,&val3);

     maximum=largest(val1,val2,val3);

     printf("the largest integer is %d = \n",maximum);
     return 0;
    }

int largest(int x,int y,int z){
    int max;
    max=x;
    if(y>max){
        max=y;
    }
    if(z>max){
        max=z;
    }
    return max;
}

答案 1 :(得分:1)

试试这个:

#include <stdio.h>
int largest(int x, int y, int z);
int main() {
    int val1, val2, val3;
    int maximum;
    printf("enter value \n");
    scanf("%d", &val1, &val2, &val3);
    maximum = largest(val1, val2, val3);

    printf("the largest integer is %d = \n", maximum);
    return 0;
}

int largest(int x, int y, int z){
    if (x >= y && x >= z)
        return x;
    if (y >= x && y >= z)
        return y;

    // otherwise
    return z;
}

问题是你希望方法返回最大值,但是根本没有这样做 - 代码没有编译,因为最大的函数被定义为“返回”int但是在任何地方都没有返回语句在你的功能。

如果您不知道“返回功能”到底是什么,请查看本教程:http://www.cplusplus.com/doc/tutorial/functions/

答案 2 :(得分:0)

这是做你想做的很简单的方法:

int largest(int a, int b, int c)
{
    a = (a > b) ? a : b;
    a = (a > c) ? a : c;
    return a;
}

答案 3 :(得分:0)

要返回值,必须在函数中使用return语句。 让我们检查一下你做了什么,

#include<stdio.h>
int largest(int x,int y,int z)/* missed ';' */
/* missed 'void main()' */ 
{
 int val1,val2,val3;
 int maximum;

  printf("enter value \n");
  scanf("%d",&val1,&val2,&val3); /* missed format specifier for other two values */

  maximum=largest(val1,val2,val3);

  printf("the largest integer is %d = \n",maximum);
  return 0;
}

int largest(int x,int y,int z)
{
 if(x>=y && x>=z)
 printf("Largest number = %d", x);/* written print statement instead of return statement  */
 if(y>=x && y>=z)
 printf("Largest number = %d", y);/* written print statement instead of return statement  */
 if(z>=x && z>=y)
 printf("Largest number = %d", z);/* written print statement instead of return statement  */               
}

修改后代码应该是这样的,

#include<stdio.h>
int largest(int x,int y,int z);
int main()
{
 int val1,val2,val3;
 int maximum;

 printf("enter value \n");
 scanf("%d %d %d",&val1,&val2,&val3);
 maximum=largest(val1,val2,val3);
 printf("the largest integer is %d  \n",maximum);
 return 0;
}

int largest(int x,int y,int z)
{
 if(x>=y && x>=z)
  return x;
 if(y>=x && y>=z)
  return y;
 if(z>=x && z>=y)
  return z;
}