C语言提高-第20讲: 经典:查找的艺术(有序数组中插入数据)
来源:互联网 发布:js判断ios版本号 编辑:程序博客网 时间:2024/05/19 20:59
任务和代码:
/**All rights reserved*文件名称:main.c*作者: Osseyda完成日期:2017.10.19*版本号:v2.*问题描述:定义好一个有10个元素的数组,先输入9个呈升序的数作为前9个元素,再输入一个数,要求按原来排序的规律将它插入数组中。例如,9个呈升序的数为1 7 8 17 23 24 59 62 101,需要插入的数字为50,输出的序列则为1 7 8 17 23 24 50 59 62 101。*解题思路:进行一趟逐个比较,前一项若大于后一项,则交换*/#include <stdio.h>#define SIZE 10int main(){ int a[SIZE],i,x,t; for(i=0;i<SIZE-1;i++) scanf("%d",&a[i]); printf("需要插入的数字为:"); scanf("%d",&x); a[SIZE-1]=x; for(i=0;i<SIZE-1;i++){ if(a[i]>a[SIZE-1]){ t=a[i]; a[i]=a[SIZE-1]; a[SIZE-1]=t; } } for(i=0;i<SIZE;i++) printf("%d ",a[i]); return 0;}运行结果:
/*换一种解题思路:利用“倒序插队”的思路,把大数往后“搬”,腾出位置保存n*/#include <stdio.h>#define SIZE 10int main(){ int a[SIZE],i,x,t; for(i=0;i<SIZE-1;i++) scanf("%d",&a[i]); printf("需要插入的数字为:"); scanf("%d",&x); //找到a[]中大于x的元素 for(i=0;i<SIZE-1;i++){ if(a[i]>x) break; } t=i; //将大数往后移,腾出位置保存x for(i=SIZE-1;i>t;i--) //当i=6时,跳到判断框中i--,再判断i>=t,跳出 a[i]=a[i-1]; a[i]=x; for(i=0;i<SIZE;i++) printf("%d ",a[i]); return 0;}
知识点总结:
1.将输入的数放入数组
2.将一个数插入一组有序数组时,只需要在冒泡排序中走一趟;
也可以利用“倒序插队”的思路,将大数往后挪
心得:
scanf("%d",&a[i]);原来是scanf("%d ",&a[i]);时,运行结果:
1.当输入字符串的时候,空格无法用scanf读入,用gets读入
2.scanf里面是什么格式的就照着那个格式输入
3.scanf("% ",& );右引号之前不要留空格
阅读全文
0 0
- C语言提高-第20讲: 经典:查找的艺术(有序数组中插入数据)
- C语言提高-第20讲: 经典:查找的艺术(有几个)
- 第4周 C语言及程序设计提高例程-20 经典:查找的艺术
- 提高篇第二十六讲项目1-有序数组中插入数据(函数版)
- 提高第21课时,实践3,有序数组中插入数据 (第2种方法)
- 提高第26课时,实践1,项目1-有序数组中插入数据(函数版)
- 第14周 《C语言及程序设计》实践参考——有序数组中插入数据
- C语言及程序设计提高例程-20 经典:查找的艺术
- 提高篇第二十一讲——有序数组中插入数据
- 第四周《C语言及程序设计》实践项目20 经典:查找的艺术
- 《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
- 提高第21课时,实践3,有序数组中插入数据
- 提高项目19-有序数组中插入数据
- C语言提高-第17讲: 一维数组的定义和引用(数组大折腾)
- 提高项目23-有序数组中插入数据(函数版)
- 《C语言及程序设计》实践参考——有序数组中插入数据
- C语言OJ项目参考(1045)插入有序数组中
- C语言 - 有序数组插入后数据仍然是有序数组(曾经脑残写了半天)
- android开发笔记之内存泄漏检测工具leakcanary
- Docker网络之二:自定义网桥
- 理解阻塞非阻塞与同步异步的区别
- ArcEngine 中把地图坐标转为屏幕坐标的方法
- 二进制开关工具类
- C语言提高-第20讲: 经典:查找的艺术(有序数组中插入数据)
- Java中null关键字的强转
- sequlize 简单操作
- Andorid 换肤框架AndSkin源码解析及优缺点
- [分治] 51Nod1555 布丁怪
- 特征匹配之Brute-Force 匹配和FLANN 匹配器
- 在HyperLedger Fabric中启用CouchDB作为State Database(区块链数据库)
- c语言操作符简介
- spark本地调试hive