C语言 3个数比大小

2024-11-15 12:53:14
推荐回答(5个)
回答1:

输入50个数,求最大值。(求多个数的最大值的通用方法)
#include
main()
{
int i,a;
int max;
printf("please input 50 numbers:");
scanf("%d",&a);
max = a;
for(i=2;i<=50;i++){
scanf("%d",&a);
if(a>max)
max=a;
}
printf("max=%d",max);

}

利用宏定义,求三个数中的最大值
#include
#define MAX(x,y) ((x)>(y)?(x):(y))
void main()
{
int a, b, c;
printf("input 3 numbers:");
scanf("%d%d%d",&a,&b,&c);
printf("MAX is %d.\n", MAX(a,MAX(b,c)));

}

输入三个数,求其中的最大值。
#include
main()
{
int a,b,c,max;
printf("please input 3 numbers:\n");
scanf("%d %d %d ",&a,&b,&c);
max=a;
if(b>c)
{if(b>max) max=b;}
else if(c>a)
max=c;
printf("max=%d",max);
}

输入三个整数,用空格分开,求其中的最大值 (if-else)
#include
main()
{
int a,b,c,max;
printf("请输入三个整数,用空格分开。");
scanf("%d %d %d",&a,&b,&c);
if(a>b)
max=a;
else
max=b;
if(c>max)
max=c;
printf("你输入的三个数中最大的是%d\n",max);
}

输入三个数,求其中的最大值((a>b)?a:b)>c?((a>b)?a:b):c)
#include
int main()
{
int a,b,c;
int max;
printf("input 3 numbers");
scanf("%d %d %d",&a,&b,&c);
printf("max=%d",((a>b)?a:b)>c?((a>b)?a:b):c);
return 0;
}

输入三个数,求其中的最大值 (用三元运算符)
#include
int main(void)
{
int a,b,c,max;
printf("input 3 numbers:");
scanf("%d %d %d",&a,&b,&c);
max=a>b?a:b;
max=c>max?c:max;
printf("max=%d",max);
return 0;
}

用交换法求输入的三个数中的最大值
#include
main()
{
int x,y,z,t;
printf("请输入三个数,并用空格分开:");
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("最大值是%d\n",z);
}

回答2:

你可以编一个子程序比较两个数的大小,然后调用两次就OK了,
C里面有直接比较两个数大小的语句
#include
void main()
{
int a,b,d,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a<=b) d=b;
else d=a;
if(d}

回答3:

程序没什么错,怀疑你输入时是不是用空格分隔字符的,用逗号试试,
scanf("%d,%d,%d",&a,&b,&c)中你是用逗号隔开的啊,输入时也要用逗号的

回答4:

这里出现个问题,假如X=Y同时Z最小。这时候输出的还是Z ,不就出现错误了吗??

回答5:

ok,没问题。