输入的b为负数,但是你的a是多大?如果a比b大的话输出a也是有可能的
方法1:(利用选择结构设计)
#include
{
int a, b, c, max;
scanf("%d %d %d", &a, &b, &c); //输入3个数字
//判断3个数值大小
if (a > b){ if (a > c) max = a; else
max = c;
} else{ if (b > c) max = b; else
max = c;
} printf("Max=%d\n", max); //输出最大值
return 0;
}123456789101112131415161718192021
方法2:(利用条件表达式)
#include
{ int a, b, c, max; scanf("%d %d %d", &a, &b, &c); //输入3个数值
max = (a > b ? (a > c ? a : c) : (b > c ? b : c)); //判断3个数值大小
printf("Max=%d\n", max); //输出最大值
return 0;
}123456789
方法3:(利用函数的模块化设计)
#include
{ int a, b, c; scanf("%d %d %d", &a, &b, &c); //输入3个数值
printf("Max=%d\n", max(a, b, c)); //输出最大值
return 0;
}//最大值函数int max(int x, int y, int z)
{ return (x > y ? (x > z ? x : z) : (y > z ? y : z));
}1234567891011121314
方法4:(利用指针法1)
#include
{ int a, b, c, *x, *y, *z; //定义三个值和对应指针变量 x=&a, y=&b, z=&c; printf("Please enter number a b c: "); //输入三个数
scanf("%d %d %d", x, y, z);
max(x, y, z); //调用最大值函数 return 0;
}
//最大值函数
void max(int *p, int *q, int *r)
{ int m; m=*p>*q ? (*p>*r ? *p : *r) : (*q>*r ? *q : *r); printf("Max=%d\n", m);
}
应为scanf("%d%d%d",&a,&b,&c); 没有逗号。还有你忘记abc相等的情况了
PS:三整数排序程序
#include
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;a=b;b=t;
}//执行完毕后a<=b
if(a>c)
{
t=a;a=c;c=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
printf("%d%d%d\n",a,b,c);
return 0;
}