大佬好!我输入三个数打出的最大值和最小值都是一样的!!!我觉得我没有错啊》
#include <stdio.h>void main()
{
int a,b,c,max,min;
printf("please input three numbers:\n");
scanf("%d%d%d",&a,&b,&c);
if (a>b)
{
max=a,min=b;
}
else
{
max=b,min=a;
}
if (max<c)
{
max=c;
}
else if(min>c);
{
min=c;
}
printf("max=%d\nmin=%d",max,min);
} else if(min>c);最后这个分号去掉 本帖最后由 jackz007 于 2019-8-22 00:13 编辑
这一句有问题: else if(min>c);/* 这句末尾的分号必须去掉 */
{
min=c;
}
由于这个分号的存在,将导致 min 的值注定等于 c。
#include <stdio.h>
main(void)
{
int a , b , c , max , min ;
printf("please input three numbers:\n");
scanf("%d%d%d" , & a , & b , & c ) ;
if (a > b) max = a , min = b ;
else max = b , min = a ;
if(max < c) max = c ;
if(min > c) min = c ;
printf("max = %d\nmin = %d" , max , min) ;
}
也可以考虑采用三目运算符:
#include <stdio.h>
main(void)
{
int a , b , c , max , min ;
printf("please input three numbers:\n") ;
scanf("%d%d%d", & a , & b , & c) ;
max = a > b ? a : b ;
max = c > max ? c : max ;
min = a < b ? a : b ;
min = c < min ? c : min ;
printf("max = %d\nmin = %d\n" , max , min) ;
}
页:
[1]