C语言使用指针作为函数参数,并利用函数嵌套求输入三个整数,将它们按大到小的顺序输出。(超详细解析,看完学会指针和函数嵌套同时使用)

输入三个整数,要求从大到小的顺序向他们输出,用函数实现。

本代码使用到了指针和函数嵌套。

调用指针做函数ex,并嵌套调用指针函数exx在函数ex中。(代码在下面哦!


一、关于函数 ex

  1. 这个函数接受三个指针参数 int *p1 、 int *p2 和 int *p3 ,分别指向三个整数。

  2. 函数内部首先声明了另一个函数 exx ,这个函数接受两个指针参数,用于交换两个整数的值。

  3. 接着通过三个条件判断来确定三个整数的大小关系并进行调整:

如果 *p1 所指向的整数小于 *p2 所指向的整数,就调用 exx(p1, p2) ,将这两个整数的值进行交换。如果 *p1 所指向的整数小于 *p3 所指向的整数,就调用 exx(p1, p3) ,将第一个整数和第三个整数的值进行交换。如果 *p2 所指向的整数小于 *p3 所指向的整数,就调用 exx(p2, p3) ,将第二个整数和第三个整数的值进行交换。

二、关于函数 exx

  1. 这个函数接受两个指针参数 int *p111 和 int *p222 。

  2. 函数内部定义了一个整数变量 temp ,用于临时存储一个整数的值。

  3. 首先将 *p111 的值(即第一个指针所指向的整数)赋给 temp 。

  4. 然后将 *p222 的值赋给 *p111 ,实现第一个指针所指向的整数变为第二个指针所指向的整数的值。

  5. 最后将 temp 的值赋给 *p222 ,实现第二个指针所指向的整数变为原来第一个指针所指向的整数的值,从而完成两个整数的交换。


代码如下:

#include <stdio.h>

int main()

{

void ex(int *p1,int *p2,int *p3);

int a,b,c;

int *p11,*p22,*p33;

printf("please enter three interger number:");

scanf("%d,%d,%d",&a,&b,&c);

p11=&a;

p22=&b;

p33=&c;

ex(p11,p22,p33);

printf("max to min three to :%d,%d,%d\n",*p11,*p22,*p33);

}

void ex(int *p1,int *p2,int *p3)

{

void exx(int *p111,int *p222);

if(*p1<*p2) exx(p1,p2);

if(*p1<*p3) exx(p1,p3);

if(*p2<*p3) exx(p2,p3);

}

void exx(int *p111,int *p222)

{

int temp;

temp=*p111;

*p111=*p222;

*p222=temp;

}

相关推荐
djarmy4 小时前
MAIN.c(1): warning C318: can’t open file ‘STC8G.H’ 报错 解决 分析
c语言·开发语言·mongodb
HEJOO94 小时前
深入理解 Java volatile 关键字:原理、用法与常见误区
java·开发语言·spring
曹牧4 小时前
Java:no content to map due to end of input
java·开发语言
梦梦代码精5 小时前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
隔窗听雨眠5 小时前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫5 小时前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie1145141915 小时前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉5 小时前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
2601_967760785 小时前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf
零衣贰5 小时前
The 2026 ICPC Asia East Continent Online Contest (I) 题解
c++·icpc