C语言代码 已知一个降序的整型数组a[20],从键盘输入一个整数,如果该整数在数组中已经存在则输出“已经存在!“,否则将概述按顺序插入在相应位置,输出插入之前和插入之后的数组(要求:初始化已经排序的数组a的部分元素,自己能在原始数组中进行插入操作)。
时间: 2024-02-01 13:13:49 浏览: 67
下面是一份C语言代码,实现了你所需要的功能:
```c
#include <stdio.h>
int main() {
int a[20] = {1, 3, 5, 7, 9}; // 已经排序的数组部分
int n, i, j, flag = 0;
printf("请输入一个整数:");
scanf("%d", &n);
for (i = 0; i < 20; i++) {
if (a[i] == n) {
printf("已经存在!\n");
flag = 1;
break;
}
if (a[i] < n) {
continue;
}
for (j = 19; j > i; j--) {
a[j] = a[j - 1];
}
a[i] = n;
break;
}
printf("插入之前的数组:");
for (i = 0; i < 20; i++) {
printf("%d ", a[i]);
}
printf("\n");
if (!flag) {
printf("插入之后的数组:");
for (i = 0; i < 20; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
return 0;
}
```
代码逻辑如下:
首先定义了一个长度为20的整型数组a,并初始化了前5个元素为1、3、5、7、9,即已经排序好的数组部分。
接着从键盘输入一个整数n,然后遍历数组a,查找是否存在与n相等的元素。如果找到了,说明n已经存在于数组中,输出提示信息并结束程序。
如果未找到相等的元素,则需要将n插入到数组a中。在遍历数组时,如果发现a[i]小于n,则说明需要继续向后查找。如果a[i]大于n,则说明n应该插入到a[i]的位置。为了将n插入到a[i]的位置,需要将a[i]以及后面的元素都向后移动一个位置,然后将n插入到a[i]的位置。最后输出插入之前和插入之后的数组。
需要注意的是,在程序中使用了一个flag变量来标记是否已经找到相等的元素。如果未找到相等的元素,则需要输出插入之后的数组。如果找到了相等的元素,则不需要输出插入之后的数组。这个flag变量的作用是帮助判断是否需要输出插入之后的数组。
阅读全文