描述

读入整数N,再读入N个整数存入数组,排序后输出。对数组排序请使用函数实现(冒泡法):void bubble_sort(int *a,int n) 。

输入输出示例

输入 输出
示例 1
10
72 29 5 91 63 32 68 40 57 11
5 11 29 32 40 57 63 68 72 91
#include<stdio.h>//本题主要讲解指针得用法,在用子函数想要实现用冒泡法将主函数的数组排好顺序
//就需要用到指针,若仅仅单纯在子函数中数组中用冒泡法调整大小(不借助指针,无法实现将调整好的数组值传递回主函数中
//因此需要借助指针
void bubble_sort(int *a,int n1)//起始定义的 int *a 表示这个是一个 常整型指针变量a
//去看主函数中bubble_sort(arr, n)相对于位置为 arr,  继续 可以看着 a=arr  ,等价于a=&arr ,将数组arr的首地址赋给a
//起始的 *只是一开始定义时使用而已,并不是 *a=&arr或*a=arr(把数组arr地址赋给*a的意思)
//解引用运算符 * 加在某个地址前面,表示这个地址所指向的具体值
//子函数与子函数传递参数具体是  a=arr(将数组arr的地址传给a) n1=n(把n的值传递给n1)
//在子函数中主要是运用冒泡法,可以看博主前面的冒泡法排序,背诵  2个for循环+1个if判断语句(再替换)
{ int i,j,t;for(i=1;i<n1;i++){for(j=0;j<n1-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}
}int main()
{int arr[100],i,j,n;scanf("%d",&n);for(i=0;i<n;i++){ scanf("%d",&arr[i]);}
bubble_sort(arr, n);//在主函数中 调用 前面自定义的函数 bubble_sort( a,b),a为数组,b为输入个数 for(i=0;i<n-1;i++){ printf("%d ",arr[i]);}printf("%d\n",arr[i]);
}

好久没更新了,感谢读者的观看,咱们一起努力学习吧!2021.12.15

自定义数组名做参数(传指针教学)相关推荐

  1. C++数组名做函数形参/指针

    数组名做函数形参 数组未开辟空间时 #include <iostream> using namespace std; void test(int* a) {*a = 0;*(a+1) = ...

  2. 数组作为函数的参数传参时,数组名会退化为指针

    1.数组作为函数的参数传参时,数组名会退化为指针 数组作为函数的参数传参时,数组名会退化为指针,数值传参时,需要把数值的长度一起传过去,另外,sizeof()运算符包含字符串的哨兵'/0',而strl ...

  3. C语言-数组名真的不是指针

    文章目录 1 前言 2 关于一维数组 3 sizeof运算符和自增运算符 4 数组名也不是常量指针 5 总结 1 前言 参照我之前的两篇文章: 二维数组做函数的参数 动态创建二维数组 事实告诉我们,二 ...

  4. c语言数组名做函数的参数传递,【C 语言】数组元素和数组名作为函数参数

    数组用作函数参数有两种形式: 一种是把数组元素(下标变量)作为实参使用: 一种是把数组名作为函数的形参和实参使用. 1.数组元素(下标变量)作为实参使用 数组元素作为函数实参使用与普通变量是完全相同的 ...

  5. 在c语言程序中,数组名做函数调用的实参时,传递给形参的是,若用数组名作为函数调用时的实参,则实际上传递给的形参的是(C)...

    若用数组名作为函数调用时的实参,则实际上传递给形参的是数组首地址. 数组首地址数组第一个元素的地址.数组名字本身就是一个指针,它是一个指针常量,指向的地址不变. 比如定义了一个数组变量,编译器就会在内 ...

  6. JS利用apply方法,将数组直接当做参数传给函数

    利用apply()方法. 语法:apply([thisObj[,argArray]])  定义:应用某一对象的一个方法,用另一个对象替换当前对象.  说明:  如果 argArray 不是一个有效的数 ...

  7. 反射的妙用-类名方法名做参数进行方法调用实例demo

    首先声明一点,大家都会说反射的效率低下,但是大多数的框架能少了反射吗?当反射能为我们带来代码上的方便就可以用,如有不当之处还望大家指出 1,项目结构图如下所示:一个ClassLb类库项目,一个为测试用 ...

  8. 二维数组名做参数传递问题

    在用二维数组名作为参数传递时容易出现Segmention Error.这是因为不能正确为二维数组中元素寻址的问题,正确的方法如下: 1. 用指向一维数组的指针变量,如下例子所示: #include & ...

  9. 易懂的数组作为函数参数(C语言)

    易懂的数组作为函数参数(C语言) 目录 易懂的数组作为函数参数(C语言) 1.数组做函数参数 2.通过形参数组修改数组元素 3.数组排序 1.数组做函数参数 (1).若将一个数组作为实际参数传递给函数 ...

最新文章

  1. 设置VSCode快捷键Alt+U(首字母转换为大写)、Shift+Alt+U(全部转换为大写)、Shift+Alt+L(全部转换为小写)
  2. 手动添加JAR包到本地Maven仓库
  3. Codeforces Round #506 (Div. 3) - D. Concatenated Multiples(思维)
  4. Koa框架——coderhub实战
  5. java spring配置文件路径_java - 在spring b中从命令行设置活动配置文件和配置位置...
  6. python分段函数 保留两位小数_使用Python适合分段函数
  7. shell 登录mysql 然后quit_MySQL 数据库简单操作
  8. GitHub 遭黑客攻击勒索;苹果夸大 iPhone 电池续航时间;全球第二大暗网被摧毁 | 极客头条...
  9. java源码社团管理系统_基于jsp的社团管理系统-JavaEE实现社团管理系统 - java项目源码...
  10. 计算机网络遴选的试题,税收信息化基础知识试题含答案
  11. ECMAScript
  12. 量子计算机的算力是多少,我国量子计算机实现算力全球领先
  13. mysql notifier启动_开机的时候mysql notifier报错无法启动怎么办?
  14. pyshark.tshark.tshark.TSharkNotFoundException: TShark not found.
  15. 灰色预测模型【GM(1,1)模型】 【matlab代码】
  16. html文本框如何固定不动,css如何让div固定不动?
  17. 1079 日K蜡烛图
  18. 和数软件新增6项计算机软件著作权登记证书
  19. 华为无线路由器信道怎么测试软件,教你为无线路由器选择合适的信道让上网更快...
  20. 16 进制转 10 进制

热门文章

  1. 自学python能学成吗-Python能自学成功吗?
  2. 语音识别在智能交通中的几种应用分析
  3. 百度语音识别技术突破 巨头崛起
  4. bootstrap的依赖_这五款超好用的Bootstrap扩展,让你的Web开发事半功倍
  5. echarts折线图y轴根据数值自动_Python matplotlib 绘制双Y轴曲线图的示例代码
  6. oracle11g日志分析,Oracle11g在Windows环境下监听日志文件达到4G问题解决方案
  7. Java 实现 RSA 非对称加密算法-加解密和签名验签
  8. googlemap 两点间平滑移动_Salomon萨洛蒙徒步登山鞋实测,一双在山林与城市间探索的户外鞋...
  9. php如何将读取到的mysql内容按发布的日期分割显示_php如何读取文件夹目录里的文件并按照日期,大小,名称排序...
  10. c3p0存在严重bug “APPARENT DEADLOCK“的问题