用c++ 定义并初始化一个长度是9的按升序排列的整型数组, 要求:(1)实现对数组的插入和删除操作,要求进行插入和删除操作后,数组依然按升序排列,并把顺序表插入前和插入后的元素的值分别输出。 (2)对程序进行调试,学会设置断点及追踪程序。 例如 在该数组中插入25,则数组插入前后的示意图如下: 12 13 21 24 28 30 42 77 数组插入前: 数组插入后: 12 13 21 24 25 28 30 42 77
时间: 2023-04-07 11:02:01 浏览: 164
我可以回答这个问题。以下是代码实现:
#include <stdio.h>
void insert(int arr[], int len, int num) {
int i, j;
for (i = 0; i < len; i++) {
if (arr[i] > num) {
for (j = len - 1; j >= i; j--) {
arr[j + 1] = arr[j];
}
arr[i] = num;
break;
}
}
if (i == len) {
arr[i] = num;
}
}
void delete(int arr[], int len, int num) {
int i, j;
for (i = 0; i < len; i++) {
if (arr[i] == num) {
for (j = i; j < len - 1; j++) {
arr[j] = arr[j + 1];
}
arr[len - 1] = 0;
break;
}
}
}
int main() {
int arr[9] = {12, 13, 21, 24, 28, 30, 42, 77};
int len = 8;
int num = 25;
printf("数组插入前:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
insert(arr, len, num);
len++;
printf("数组插入后:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
delete(arr, len, 21);
len--;
printf("数组删除后:");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
输出结果为:
数组插入前:12 13 21 24 28 30 42 77
数组插入后:12 13 21 24 25 28 30 42 77
数组删除后:12 13 24 25 28 30 42 77
关于调试,可以使用 IDE 中的调试功能,设置断点并逐步执行程序,观察变量的值变化,以便找出程序中的错误。
阅读全文