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

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

时间:2024-10-22 12:21:23浏览次数:3  
标签:p1 函数 指向 int 整数 嵌套 指针

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

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

     调用指针做函数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;
}

标签:p1,函数,指向,int,整数,嵌套,指针
From: https://blog.csdn.net/2401_87108776/article/details/143148490

相关文章

  • GaussDB: db2->gaussdb 函数转换
    一、db2->gaussdb函数转换问题描述:使用GaussDB替代DB2的方案,使用起来还是有些差别,做一下函数的映射转换。 DB2写法GaussDB改写语法日期函数days(OUTWORKDATE)EXTRACT(epochfromoutworkdate)/86400;EXTRACT(DAYFROM(OUTWORKDATE-DATE'0001-01-01'+......
  • JS中什么是回调函数
    JS中的回调函数是一种特殊类型的函数,它作为参数传递给另一个函数,并在该函数的执行过程中被调用执行。这种函数传递的机制使得异步编程成为可能,允许在某个操作完成后执行特定的操作或逻辑。一、JS中回调函数的概念在JavaScript中,回调函数是一种特殊类型的函数,它作为参数传递......
  • 【C语言】文件操作(2)(文件缓冲区和随机读取函数)
    文章目录一、文件的随机读取函数1.fseek函数2.ftell函数3.rewind函数二、文件读取结束的判断1.被错误使用的feof2.判断文件读取结束的方法3.判断文件结束的原因feofferror判断文件读取结束原因示例三、文件缓冲区一、文件的随机读取函数  在上一篇的文章中,我......
  • 第二次考试函数编程
    05类##1publicintsum(double...values)//接受若干个,最后一个为valus##2//构造器条件判断if(x>0&&y>0&&z>0&&p>0)else ##3/数字转化成字符串后返回doublearea=this.width*this.height;returnString.forma......
  • 自动柯里化函数
    functionfoo(x,y,z){console.log(x+y+z)}functionwebKingCurrying(fn){functioncurryFn(...args){//--->这里的...args是剩余参数//两类操作://1.第一类操作:继续返回一个新的函数,继续接受......
  • Optional指南,优雅解决空指针
    Optional,该类提供了一种用于表示可选值而非空引用的类级别解决方案。作为一名Java程序员,我真的是烦透了空指针,尽管和它熟得就像一位老朋友,知道它也是迫不得已——程序正在使用一个对象却发现这个对象的值为null,于是Java虚拟机就怒发冲冠地把它抛了出来当做替罪羊。当然......
  • C/C++指针的概念
              指针作为C/C++中一个重要的概念,是每个C/C++程序员必备技能,今天就来说说它。一、指针的概念指针是一种变量,它存储的是另外一个变量的内存地址。在C/C++中,通过指针可以间接访问和操作内存中的数据。例如:intnum=0;int*ptr=&num;这里ptr是一个......
  • 异步函数 async function
    ◼async关键字用于声明一个异步函数:async是asynchronous单词的缩写,异步、非同步;sync是synchronous单词的缩写,同步、同时;◼async异步函数可以有很多中写法asyncfunctionfoo(){}constfoo1=asyncfunction(){}constfoo2=async()=>{}classPerson{asyncfoo......
  • ORACLE 添加自定义函数
    返回一个值createorreplaceFUNCTIONGET_KEY_BY_QUERY(AAAINVARCHAR2)RETURNNUMBERISITEM_VALUENUMBER;BEGINSELECT'TEST'INTOITEM_VALUEFROMDUAL;RETURNITEM_VALUE;END;返回结果集CREATEORREPLACEFUNCTIONGET_LIST_BY_QUERY(......
  • ORACLE 自定义函数,把字符串拆分为列/结果集
    使用REGEXP_SUBSTRSELECTREGEXP_SUBSTR(key,'[^,]+',1,ROWNUM)ASVALUEFROM(select'1,3,4,4'askeyfromdual)CONNECTBYROWNUM<=LENGTH(key)-LENGTH(REPLACE(key,',',''))+1;自定义函数:ODCIVARCHAR2LI......