实现3个数从大到小有序输出

#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;

}

运行结果如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值