C语言提高-第20讲: 经典:查找的艺术(有序数组中插入数据)
2017-10-19 15:49
363 查看
任务和代码:
![](https://img-blog.csdn.net/20171019155344699)
知识点总结:
1.将输入的数放入数组
2.将一个数插入一组有序数组时,只需要在冒泡排序中走一趟;
也可以利用“倒序插队”的思路,将大数往后挪
心得:
scanf("%d",&a[i]);原来是scanf("%d ",&a[i]);时,运行结果:
![](https://img-blog.csdn.net/20171019155808775)
1.当输入字符串的时候,空格无法用scanf读入,用gets读入
2.scanf里面是什么格式的就照着那个格式输入
3.scanf("% ",& );右引号之前不要留空格
/* *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 10 int 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 10 int 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("% ",& );右引号之前不要留空格
相关文章推荐
- C语言提高-第20讲: 经典:查找的艺术(有几个)
- C语言及程序设计提高例程-20 经典:查找的艺术
- 第4周 C语言及程序设计提高例程-20 经典:查找的艺术
- 提高第21课时,实践3,有序数组中插入数据 (第2种方法)
- 第14周 《C语言及程序设计》实践参考——有序数组中插入数据
- C语言 - 有序数组插入后数据仍然是有序数组(曾经脑残写了半天)
- 提高篇第二十一讲——有序数组中插入数据
- 《C语言及程序设计》实践参考——有序数组中插入数据
- 提高项目19-有序数组中插入数据
- 提高项目23-有序数组中插入数据(函数版)
- 提高第26课时,实践1,项目1-有序数组中插入数据(函数版)
- 提高第21课时,实践3,有序数组中插入数据
- 第20-21章项目3-有序数组中插入数据
- c语言心得-----数组中对元素的操作排序,查找,插入,和删除
- java数组-顺序插入数据及二分法查找数据
- 第13周 OJ项目2-在有序数组中插入数据
- C语言向有序数组中插入一个数使该数组仍保持有序
- 第四周《C语言及程序设计》实践项目20 经典:查找的艺术
- 在一个二维有序数组中,查找指定的数据是否存在
- java 中的经典算法 如何将有序数据打散,以及在数组中取数据如何做到结果不重复。