《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
来源:互联网 发布:ios 用沙盒缓存数据 编辑:程序博客网 时间:2024/06/05 04:34
返回:贺老师课程教学链接 项目要求
【项目1-有序数组中插入数据(函数版)】
有一个足够“大”的数组a,其中已经存储了n个呈升序排列的数据。调用函数insert(a, n, m),可以将数m插入到a中的合适位置,使其仍然保持升序,并且返回值为数组中有效数字的个数(即原先的n加1)。
例如,若a中数据为1 7 8 17 23 24 59 62 101,n=9,需要插入的数字m为50,调用函数insert(a, n, m)后,a中数据为1 7 8 17 23 24 50 59 62 101,n=10。
下面给出了调用函数insert的main函数,请写出insert函数来,实现上述功能。
int main(){ int a[N]= {1, 7, 8, 17, 23, 24, 59, 62, 101}; int i, n=9; int m =50; n = insert(a, n, m); //在长度为n的a数组中插入m,使仍保持有序 for(i=0; i<n; ++i) printf("%d ", a[i]); printf("\n"); return 0;}[参考解答]
#include <stdio.h>#define N 100int insert(int [], int, int);int main(){ int a[N]= {1, 7, 8, 17, 23, 24, 59, 62, 101}; int i, n=9; int m =50; n = insert(a, n, m); //在长度为n的a数组中插入m,使仍保持有序 for(i=0; i<n; ++i) printf("%d ", a[i]); printf("\n"); return 0;}int insert(int d[], int n, int m){ int i = n-1; while(i>=0&&d[i]>m ) //把大数往后“搬”,腾出位置保存n { d[i+1] = d[i]; i--; } i++; d[i] = m; //找到了确定的位置赋值 n++; return n; //返回值为数组中新的有效数据的个数}
0 0
- 《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
- 《C语言及程序设计》实践参考——有序数组中插入数据
- 第14周 《C语言及程序设计》实践参考——有序数组中插入数据
- 《C语言及程序设计》实践参考——翻转数组
- 《C语言及程序设计》实践参考——Bessel函数
- 《C语言及程序设计》实践参考——递归函数
- 《C语言及程序设计》实践参考——二维数组当函数参数
- 《C语言及程序设计》实践参考——分段函数求值switch语句版
- 《C语言及程序设计》实践参考——函数版星号图
- 《C语言及程序设计》实践参考——歌手大奖赛计分函数版
- 《C语言及程序设计》实践参考——成绩处理函数版
- C语言OJ项目参考(1045)插入有序数组中
- 《C语言及程序设计》实践参考——数组大折腾
- 《C语言及程序设计》实践参考——当年第几天(数组方案)
- 《C语言及程序设计》实践参考——删除数组元素
- 《C语言及程序设计》实践参考——数组的排序
- 《C语言及程序设计》实践参考——折腾二维数组
- 《C语言及程序设计》实践参考——动态数组排序
- Eclipse中自动添加注释(作者,时间)
- 利用 html5 canvas 简单绘制折线图
- wireshark抓包排除/显示SSDP的过滤条件
- 去掉ios7的全屏布局
- 《C语言及程序设计》实践参考——翻转数组
- 《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
- 全局变量 锁
- 第八周 项目一--实现复数类中的运算符重载(3)扩展运算符功能
- socket之函数大全
- Ubuntu下修改目录权限命令如下:
- Windows7修改文件默认图标
- rpm命令与yum命令
- 黑马程序员————流程控制语句——跳转语句
- 关于研究生规划的困惑