C语言 3个数比大小

来源:百度知道 编辑:UC知道 时间:2024/06/24 10:10:09
#include<stdio.h>
void main()
{
int max(int x,int y,int z);
int a,b,d,c;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int max(int x,int y,int z)
{
int q;
if(x>y&&x>z) q=x;
else if(y>z&&y>x) q=y;
else q=z;
return(q);
}

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

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

ok,没问题。

输入50个数,求最大值。(求多个数的最大值的通用方法)
#include<stdio.h>
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 <stdio.h>
#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)));