题目内容:有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
个人解法如下:
#define _CRT_SECURE_NO_WARNINGS //防报错#include <stdio.h>#include <stdlib.h>int main(){int a[100], N, Nummer, i; //本题并没给出原数组的已有数字个数,所以先给数集的元素数量任意赋值,这里赋值100printf("请输入原数组的已有数字个数:\n");scanf("%d", &N);printf("请输入原数组:\n");for (i = 0; i < N; i++) scanf("%d", &a[i]);printf("请输入欲插入的数:\n");scanf("%d", &Nummer);if (a[0] > a[1]) //若降序 for (int j = 0; j < N; j++) if (a[j] <= Nummer) {int t1 = a[j];a[j] = Nummer;for (int k = j + 1; k < N+1; k++)int t2 = a[k]; a[k] = t1; t1 = t2;break;}else if (a[0] < a[1]) //若升序 for (int j = 0; j < N; j++) if (a[j] > Nummer) {int t1 = a[j];a[j] = Nummer;for (int k = j + 1; k < N+1; k++)int t2 = a[k]; a[k] = t1; t1 = t2;break; }printf("排序后的数组:\n");for (i = 0; i < N+1; i++)printf("%d ", a[i]);return 0;}
本人拙作,请大佬们点评。
【C语言习题】有一个已排好序的数组 要求输入一个数后 按原来排序的规律将它插入数组中。