欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

输入a,b,c三个值,输出其中最大值。

程序员文章站 2024-03-16 20:20:22
...

接收三个数值并输出其中最大值

  • 接收三个数值,并输出最大值
#include <stdio.h>

int main()
{
  int max(int x, int y, int z);//定义一个需要被调用的函数
  int a,b,c,e;                 //定义需要接收并输出的变量
  scanf("%d,%d,%d",&a,&b,&c);  //接收需要比较的数值
  e = max(a,b,c);              //将max函数得到的值赋给变量e
  printf("max=%d",e);          //输出最大值
  return 0;                      
}
int max(int x, int y, int z)   //定义要调用的函数
{
  int d;                       //定义要接收最大值的变量
  if(x>y  &&  x>z) d=x;        //如果X大于y和z,则最大值x赋给d
  else if (y>z  &&  y>x) d=y;  //如果y大于x和z,则最大值y赋给d
  else d = z;                  //否则,最大值z赋给d
  return d;                    //将最大值d返回给调用函数max
}
  • 简洁式求三个数最大值
#include <stdio.h>

int main()
{
  int max(int x, int y);
  int a,b,c,d;
  scanf("%d,%d,%d",&a,&b,&c);
  d=max(max(a,b),c);
  printf("max=%d",d);
  return 0;
}
int max(int x, int y)
{
  if(x>y) return x;
  return y;
}

小结

这是我今天在书上看到的一道题目,书上的例题是求两个数的最大值。然后我在做题的过程中不管怎么算,求出来的结果都是输入的第一个数,怎么都找不到问题所在。然后也查了查网上的大神是如何解答的。于是我就照着大神的照猫画虎,结果还是不行,我都要崩溃了。最后的最后,我发现了问题。在我接收三个数值的那句语句中出现了问题。当时的语句是这样的

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

可能是因为自己写代码时候疏忽了,本来应该“%d”后面跟的是“,”,结果我写的是空格。然后在输入的过程中,我输入的又是输入a,b,c三个值,输出其中最大值。
导致自己纠结了半天,都没搞明白是怎么错的。

所以感觉以后敲代码要细心去敲,不然这种微小的地方真的是很难发现