C语言 - 有序数组插入后数据仍然是有序数组(曾经脑残写了半天)
2013-11-29 21:45
274 查看
题目: 给定一个有序数组,内容为 2, 4, 6, 8, 10, 12, 14, 16, 18, 20; 输入一个数据,插入到数组中; 输出的数组仍然为有序数组
// 第一种:较为快速的方式 #include <stdio.h> #include <stdlib.h> int main(void) { int val, i; int a[11] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; scanf("%d", &val); for(i=9; i>=-1; i--) { if ( a[i] > val ) { a[i+1] = a[i]; } else { a[i+1] = val; break; } } for(i=0; i<11; i++) { printf("%d ", a[i]); } printf("\n"); system("pause"); return 0; }
// 第二种:按照题目要求,死方法写的方式 #include <stdio.h> #include <stdlib.h> int main(void) { int val, i, j; int a[11] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; scanf("%d", &val); for(i=0; i<10; i++) { if(val <= a[i]) { break; } } for(j=9; j>=i; j--) { a[j+1] = a[j]; } a[i] = val; for(i=0; i<11; i++) { printf("%d ", a[i]); } printf("\n"); system("pause"); return 0; }
// 第三种:添加进数组最后,冒泡排序得到结果 #include <stdio.h> #include <stdlib.h> int main(void) { int n, i, j, min, temp, a[11] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; scanf("%d", &a[10]); min = a[0]; for(i=0; i<11; i++) { for(j=i; j<11; j++) { if( a[i] > a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } for(i=0; i<11; i++) { printf("%d ", a[i]); } printf("\n"); system("pause"); return 0; }
相关文章推荐
- C语言提高-第20讲: 经典:查找的艺术(有序数组中插入数据)
- 编写函数,将一个数据插入有序数组,要求插入后数组仍然有序
- 《C语言及程序设计》实践参考——有序数组中插入数据
- 第14周 《C语言及程序设计》实践参考——有序数组中插入数据
- INSERT C语言中,一个有序数组插入另一个无序数组,求插入次数。
- 提高项目19-有序数组中插入数据
- 第十三周OJ项目B:在有序数组中插入数据
- Problem F: 在有序数组中插入数据
- 第十三周 OJ平台-在有序数组中插入数据
- 有n个有序的整数放在一维数组中,输入一个数,将该数放入数组合适的位置,使插入该数后,数组中的元素仍然有序;
- 《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
- 第13周Problem B: 在有序数组中插入数据(冒泡法)
- 在有序数组中插入数据
- Java有序数组插入数据的三种方法
- 60}的C程序 高手帮忙写下`` 46 35 27 21 16 10 9 5 然后输出数组a。已知 int a[11]={1 使数组a仍然有序 将x插入到有序整型数组a中 由键盘输入一个整数x
- 第十三周OJ2(有序数组中插入数据)
- OJ--在有序数组中插入数据
- 在一个已排序的数组中插入数据(c语言)
- 数据结构-数组排序(冒泡 选择 插入 归并(合并有序数组))-C语言
- 提高第26课时,实践1,项目1-有序数组中插入数据(函数版)