一个C语言的求最大值的小程序

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:30:56
#include<stdio.h>
main()
{int a,b,c;
printf("input three number:");
scanf("%d%d",&a,&b,&c);
if((a>b>c)||(a>c>b))
printf("the max is%d",a);
else if((b>a>c)||(b>c>a))
printf("the max is%d",b);
else
printf("the max is%d",c);
}
大家运行一下看看,为什么求不出最大值呢?
我就想知道我这哪里错了,不需要其他求最大值的程序了,谢谢了。

整体架构并没有错,不过1、scanf后输入个数和赋值个数不同,这个是不小心弄出来的2、C中的a>b>c的意思是(a>b)>c,若a>b则(a>b)值为1,否则为0,这个结果再和c比较。应该改成(a>b&&b>c)。其他都是一样的哈。。。

scanf("%d%d",&a,&b,&c);
输入格式问题: scanf("%d %d %d",&a,&b,&c);这样输入用空格格开

逻辑上

#include<stdio.h>
main()
{int a,b,c;
printf("input three number:");
scanf("%d %d %d",&a,&b,&c);
if(a>b && a>c) printf("%d\n",a);
if(b>a && b>c) printf("%d\n",b);
if(c>a && c>b) printf("%d\n",c);
}

scanf("%d%d",&a,&b,&c); 少了一个%d
当然 修改了,也还是有问题的, 原因是a>b>c
这样判断是错误的, 判断结果永远都是0. 换成其他表达式就可以了。

scanf("%d%d",&a,&b,&c); ,如果你这样写,请问变量c的值传到哪里去?变量c没有分配内存,当然就不会有c的值,所以你也得不到最大的值,正确的格式为:
scanf("%d %d %d",&a,&b,&c);
d%之间不用空格格开也行,当然用空格的话,代码和格式会比较清晰,不会显得很挤,比较美,这是个很好的习惯