三数求最大

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:44:30
#include<stdio.h>
void main()
{int max(int a,int b,int c);
int a,b,c,d;
scanf("%a,%b,%c",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int max(int a,int b,int c)
{int d;
if(a>b) d=a;
else (a<b) d=b;
if (c>d) d=c;
else (c<d) d=d;
}
第二个答案我试了,终于可以运行了,可是为什么1 2 3比较 输出是"max=1"呢》?

这个问题用指针加数组是最完美的解法。当然,你的题目只有3个数,用最原始的if else分支法是完全可以的,指针数组体现不出其优越性。要是30个数,甚至更多的数求最大,那么怎么办?
#include "stdio.h"
void main()
{
int a[3],max,i,*p=a;
for (i=0;i<3;i++)
scanf("%d",p++);
max=a[0];
for (p=a;p<a+3;p++)
if(max<*p) max=*p;
printf("max=%d\n",max);
}
这个程序可以适合N个数求最大,简单,明了。

三数最大
int max3(int v1, int v2, int v3)
{
return (v1 < v2) ? ((v2 < v3) ? v3 : v2) : ((v1 < v3) ? v3 : v1);
}

三数最小
int min3(int v1, int v2, int v3)
{
return (v1 > v2) ? ((v2 > v3) ? v3 : v2) : ((v1 > v3) ? v3 : v1);
}

#include<stdio.h>
void main()
{
int a=0;
int b=0;
int c=0;
int max=0;
printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
if(a>c) //a>b 并且a>c,说明a是最大数
{
max=a;
}