输入3个数a,b,c,按由小到大顺序输出(C语言利用指针方法)

本文介绍了一个使用指针进行数值排序的C语言程序实例。通过定义一个swap函数,该函数接收两个整数指针作为参数,实现数值的交换,而不改变它们的地址。主函数中,用户输入三个数字,然后通过多次调用swap函数根据大小进行排序,最后输出排序后的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:由这一节开始指针的练习

一、程序分析

利用指针将三个数,a,b,c的地址不变,但是指针指向改变(也就是它的内存数据改变)

二、程序源代码

#include<stdio.h>
#include<Windows.h>
#include<math.h>
void swap(int *i,int *j)    //定义函数swap,里面含有两个指针参数 i,j
{
	int p;
	p=*i;
	*i=*j;
	*j=p;
}//函数定义是将两个数的值域改变而地址不改变

int main()
{
int n1,n2,n3;     
int *p1,*p2,*p3;
printf("请输入三个数字\n:n1,n2,n3:");
scanf("%d %d %d",&n1,&n2,&n3);
p1=&n1;//将n1的地址赋给p1,下面同理
p2=&n2;
p3=&n3;
if(n1>n2)
{
		swap(p1,p2);//引用函数,下面同理
}
if(n1>n3)
{
		swap(p1,p3);
}
if(n2>n3)
{
		swap(p2,p3);
}
printf("这三个数由小到大的排序为:%d,%d,%d\n",n1,n2,n3);
system("pause");
return 0;
}

三、程序结果示例

由上可得用指针交换值域但不改变地址的方法,同理,需要排多个数字的顺序仅仅需要改变一些主函数,将已定义函数swap根据算法多次调用即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值