编写程序,从键盘输入8个非递减有序排好的数列并放入一个一维数组中,再输入一个数elem,并将这个数elem插入到数组中,而且仍然保持非递减有序,若插入的数比原有所有的数都大时放在最后,比原有的数都小时放在最前面。
编程要求:
1、数列中数据都是整数;
2、非递减有序:就是从小到大或者允许中间有相等的情形,比如1 3 4 5 5 6就是非递减有序排列;
3、请利用数组的方法实现;
4、请严格按照输出效果输出;(影响成绩评定)
5、任务提交代码时需保证其符合行业代码规范,需进行必要的缩进及换行。(影响成绩评定)
运行效果1:
请按照非递减有序输入8个整数:
2 3 3 10 15 16 28 30
请输入elem:3
插入elem后的结果为:
2 3 3 3 10 15 16 28 30
请按任意键继续. . .
运行效果2:
请按照非递减有序输入8个整数:
3 4 10 15 16 66 78 80
请输入elem:81
插入elem后的结果为:
3 4 10 15 16 66 78 80 81
请按任意键继续. . .
运行效果3:
请按照非递减有序输入8个整数:
11 22 33 45 56 57 77 89
请输入elem:3
插入elem后的结果为:
3 11 22 33 45 56 57 77 89
请按任意键继续. . .
#includeint main(void) { int n ,arr[9] ,i ,elem ,j; printf("请按照非递减有序输入8个整数:n"); for (i = 0; i < 8; i++) scanf("%d" ,&arr[i]); printf("请输入elem:"); scanf("%d" ,&elem); for (i = 0; i < 8; i++) if(arr[i] > elem) break; for (j = 7; j >= i; j--) arr[j+1] = arr[j]; arr[i] = elem; printf("插入elem后的结果为:n"); for (i = 0; i <= 8; i++) printf("%d " ,arr[i]); printf("n"); return 0; }
#includeint main(void) { int arr[9],elem; int a,b,j; printf("请按照非递减有序输入8个整数:n"); for(a=0;a<8;++a) { scanf("%d",&arr[a]); } printf("请输入elem:"); scanf("%d",&elem); printf("插入elem后的结果为:n"); arr[8]=elem; for(a=0;a<8;++a){ for(j=0;j<8-a;++j){ if(arr[j]>arr[j+1]){ b=arr[j]; arr[j]=arr[j+1]; arr[j+1]=b; } } } for(a=0;a<9;++a){ printf("%d ",arr[a]); } printf("n"); return 0; }



