动态一维连续存储空间的应用,要求(1)定义函数,从键盘输入存储空间的大小,动态分配一维连续 整型存储空间; (2)定义函数,从键盘输入元素到存储空间中; (3)定义函数,查找指定值的元素,返回该元素的位置,如果不 存在,返回-1; (4)定义函数,查找指定位置的元素,返回该元素的值; (5)定义函数,删除指定位置的元素,返回该元素的值; (6)定义函数,在指定位置插入一个元素; (7)定义函数,删除连续的一维空间。
时间: 2023-04-12 16:00:48 浏览: 54
好的,我可以回答这个问题。以下是动态一维连续存储空间的应用的代码:
#include <stdio.h>
#include <stdlib.h>
int *arr; // 存储空间指针
int size; // 存储空间大小
// 定义函数,从键盘输入存储空间的大小,动态分配一维连续整型存储空间
void create() {
printf("请输入存储空间的大小:");
scanf("%d", &size);
arr = (int *)malloc(size * sizeof(int));
printf("存储空间创建成功!\n");
}
// 定义函数,从键盘输入元素到存储空间中
void input() {
int i;
printf("请输入元素:");
for (i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
printf("元素输入成功!\n");
}
// 定义函数,查找指定值的元素,返回该元素的位置,如果不存在,返回-1
int search_value(int value) {
int i;
for (i = 0; i < size; i++) {
if (arr[i] == value) {
return i;
}
}
return -1;
}
// 定义函数,查找指定位置的元素,返回该元素的值
int search_position(int position) {
return arr[position];
}
// 定义函数,删除指定位置的元素,返回该元素的值
int delete(int position) {
int i, value;
value = arr[position];
for (i = position; i < size - 1; i++) {
arr[i] = arr[i + 1];
}
size--;
arr = (int *)realloc(arr, size * sizeof(int));
return value;
}
// 定义函数,在指定位置插入一个元素
void insert(int position, int value) {
int i;
size++;
arr = (int *)realloc(arr, size * sizeof(int));
for (i = size - 1; i > position; i--) {
arr[i] = arr[i - 1];
}
arr[position] = value;
}
// 定义函数,删除连续的一维空间
void destroy() {
free(arr);
printf("存储空间删除成功!\n");
}
int main() {
int choice, value, position;
while (1) {
printf("请选择操作:\n");
printf("1. 创建存储空间\n");
printf("2. 输入元素\n");
printf("3. 查找指定值的元素\n");
printf("4. 查找指定位置的元素\n");
printf("5. 删除指定位置的元素\n");
printf("6. 在指定位置插入一个元素\n");
printf("7. 删除连续的一维空间\n");
printf("0. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
create();
break;
case 2:
input();
break;
case 3:
printf("请输入要查找的值:");
scanf("%d", &value);
position = search_value(value);
if (position == -1) {
printf("该元素不存在!\n");
} else {
printf("该元素的位置为:%d\n", position);
}
break;
case 4:
printf("请输入要查找的位置:");
scanf("%d", &position);
if (position < 0 || position >= size) {
printf("该位置不存在!\n");
} else {
value = search_position(position);
printf("该位置的元素为:%d\n", value);
}
break;
case 5:
printf("请输入要删除的位置:");
scanf("%d", &position);
if (position < 0 || position >= size) {
printf("该位置不存在!\n");
} else {
value = delete(position);
printf("该位置的元素为:%d,已被删除!\n", value);
}
break;
case 6:
printf("请输入要插入的位置和元素:");
scanf("%d%d", &position, &value);
if (position < 0 || position > size) {
printf("该位置不存在!\n");
} else {
insert(position, value);
printf("元素插入成功!\n");
}
break;
case 7:
destroy();
break;
case 0:
printf("程序已退出!\n");
return 0;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)