题目:键盘上获取三个数,打印出最大值,最小值和次大值
思路:可以基于函数封装和调用与if的嵌套
1.请输入三个数(printf、scanf)
2.定义一个函数k
3.k与这三个数相比较
4.最后函数封装与三目运算搞定
源代码
#include <stdio.h>
void printfwelcome()
{
printf("=====================================\n");
printf("\n");
printf("\t欢迎来到我的程序!\n");
printf("\n");
printf("=====================================\n");
}
int getTwodata1(int x,int y)
{
return x>y?x:y;
}
int getTwodata2(int x,int y)
{
return x<y?x:y;
}
int getmaxdata(int a,int b,int c)
{
int max;
max=getTwodata1(a,b);
max=getTwodata1(max,c);
return max;
}
int getmindata(int a,int b,int c)
{
int min;
min=getTwodata2(a,b);
min=getTwodata2(min,c);
return min;
}
int main()
{
int data1;
int data2;
int data3;
int TheMax;
int TheMin;
int k;
printfwelcome();
printf("请输入三个数:\n");
scanf("%d%d%d",&data1,&data2,&data3);
if(data1>data2)
{
k=data1;
data1=data2;
data2=k;
}
if(data1>data3)
{
k=data1;
data1=data3;
data3=k;
}
if(data2>data3)
{
k=data2;
data2=data3;
data3=k;
}
TheMax=getmaxdata(data1,data2,data3);
TheMin=getmindata(data1,data2,data3);
printf("你输入的数是:%d %d %d \n",data1,data2,data3);
printf("\t\n");
printf("第二大的数是:%d\n",data2);
printf("最大的数是max=%d,最小的数是min=%d\n",TheMax,TheMin);
printf("输入三个数,从大到小排列为:%d>%d>%d\n",TheMax,data2,TheMin);
printf("done!");
return 0;
}
运行结果
D:\C语言\code\第五章函数>a.exe
=====================================
欢迎来到我的程序!
=====================================
请输入三个数:
999
23
99
你输入的数是:23 99 999
第二大的数是:99
最大的数是max=999,最小的数是min=23
输入三个数,从小到大排列为:999>99>23
done!