求高手做一道C语言题目

从键盘输入3个数,输出最大值和最小值
要求:1.用scanf函数输入三个数,且在输入前要有提示;
2.使用嵌套结构出最大值,然后求出最小值,并使用printf输出

我写了三种方法,可以参考~~~
/*
从键盘输入3个数,输出最大值和最小值
1.用scanf函数输入三个数,且在输入前要有提示;
2.使用嵌套结构出最大值,然后求出最小值,并使用printf输出
*/

//方法一:你要的嵌套结构,经过判断和交换,使得a是最大值,c是最小值
#include<stdio.h>
int main()
{
int a,b,c,t;

printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
if(b>a)
{
t=a;
a=b;
b=t;
}
if(c>a)
{
t=a;
a=c;
c=t;
}
if(c>b)
{
t=c;
c=b;
b=t;
}
printf("最大值是%d,最小值是%d\n",a,c);

return 0;
}

//方法二:很方便的宏定义
#include<stdio.h>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
int main()
{
int a,b,c,maxf,minf;
printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
maxf=max(a,b);
maxf=max(c,maxf);
minf=min(a,b);
minf=min(c,minf);
printf("最大值是%d,最小值是%d\n",maxf,minf);

return 0;
}

//方法三:排序
#include<stdio.h>
#include<stdlib.h>

int cmp(const void* p,const void* q)
{
return *((int*)p) - *((int*)q);
}
int main()
{
int a[3],i;
printf("请输入三个整数:\n");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
qsort(a,3,sizeof(a[0]),cmp);//调用快排qsort函数排序,也可以自己写啦~
printf("最大值是%d,最小值是%d\n",a[2],a[0]);

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-28
#include <iostream>
using namespace std;

void main ()
{
int i,a[3],max,min,temp;
cout<<"三个数字:";
for(i = 0;i<3;i++)
{
cin>>a[i];
}
max = a[0];
min = a[0];
for(i = 0;i<3;i++)
{
if(max<a[i])
{
temp =a[i];
a[i]=max;
max=temp;
}
if(min>a[i])
{
temp =a[i];
a[i]=min;
min=temp;
}
}
cout<<"最大值:"<<max<<" "<<"最小值:"<<min<<endl;
}
用c++写的 和c是一样的 就是输入输出不一样
第2个回答  2011-03-28
#include"stdio.h"
#include"math.h"
void main()
{
int n=1;
float i,max,min;
printf("请输入三个数:\n");
scanf("%f",i);
max=i;min=i;
for(n=1;n<=3;n++)
{
scanf("%f",&i);
if(i>=max){max=i;min=min;}
else {max=max;min=i;}

printf("%f,%f",max,min);}
}
第3个回答  2011-03-28
#include <stdio.h>
#define N 3

int main(int argv, char **argc) {
int num[N];
int max, min;
int i;
for(i = 0; i < N; i++) {
printf("Input number %d:", N);
scanf("%d", num + i));
printf("\n");
}
max = num[0];
min = num[0];
for(i = 1; i < N; i++) {
if(max < num[i]) max = num[i];
else if(min > num[i]) min = num[i];
}
printf("The maximum value is %d.", max);
printf("The minimum value is %d.", min);
return 0;
}
第4个回答  2011-03-28
#include <stdio.h>
void main()
{
int a[3],i.j.t;
printf("请输入三个数");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=0;i<3;i++)
for(j=0;j<1;j++)
if (a[i]<a[i+1])
{
t=a[i+1];
a[i+1]=a[i];
a[i]=t;
}
printf(“最大值:%d",a[0]);
printf("最小值:%d",a[2]);
}
第5个回答  2011-04-01
已。其实就是这样。你做一个for循环。然后从输入的数的每一位乘以相应的八的次方,得到的就是10进制的数了。然后存储下再显示就可以了啊。

主要的难度是开始的取位数的部分。思路我有。不过取数的部分我一时也想不起来。

要不你到51cto技术论坛问问编程的朋友,不过,最好把你大致编的也写出来。不然没法给你改的。
另外,虚机团上产品团购,超级便宜
相似回答