#include <stdio.h>
/*
实现3个数从大到小排序输出
*/
int main()
{
int data1;
int data2;
int data3;
int dataTemp;//核心思想:不管怎样,data1装最小数,data2装次小数,data3装最大数
puts("请输入3个数:");
scanf("%d%d%d",&data1,&data2,&data3);
if(data1<data2){
dataTemp=data1;
data1=data2;
data2=dataTemp;
}
if(data1<data3){
dataTemp=data1;
data1=data3;
data3=dataTemp;
}
if(data2<data3){
dataTemp=data2;
data2=data3;
data3=dataTemp;
}
printf("%d,%d,%d",data1,data2,data3);
return 0;
}
总结:使用一个零时变量用于存储较大的一个值,然后交换较小的数和较大的数,然后用三个if语句对三个数实现全部的大小交换后输出
使用指针用函数封装实现:
代码如下:
#include<stdio.h>
// 输入三个数a,b,c; 要求不管怎么输入,在输出的时候,a,b,c就是由大到小的顺序输出,用函数封装实现
void getSortOfBigToSmall(int *data1,int *data2,int *data3)
{
int temp;
if(*data1<*data2)
{
temp=*data1;
*data1=*data2;
*data2=temp;
}
if(*data1<*data3)
{
temp=*data1;
*data1=*data3;
*data3=temp;
}
if(*data2<*data3)
{
temp=*data2;
*data2=*data3;
*data3=temp;
}
}
int main()
{
int data1;
int data2;
int data3;
int *a=&data1;
int *b=&data2;
int *c=&data3;
puts("请输入3个数:");
scanf("%d%d%d",a,b,c);
getSortOfBigToSmall(a,b,c);
printf("data1=%d,data2=%d,data3=%d\n",data1,data2,data3);
return 0;
}
运行结果如下: