C语言编程:完成函数insert()的定义,其功能是对具有n个元素的整型数组a按升序排序。要 求使用指针访问数组元素,按照插入法排序#include <stdio.h> #define MAX 8 void main(void) int a[MAX]={8,97,6,125,4,13,2,71}; int i; void insert(int *a,int n);//函数声明 insert(a, MAX); printf("after:n"); for(i=0;i<8;i++) printf("%d ",a[i]);printf("\n"); void insert(int *a,int n) 请在以上程序的“…”处添加语句来完成整个程序的编写,然后调试程序使其能按题目要求输出正确结果。。
时间: 2024-03-24 12:39:53 浏览: 47
301-用指针数组作为函数的参数显示多个字符串(51单片机C语言实例Proteus仿真和代码)
代码如下:
```c
#include <stdio.h>
#define MAX 8
void insert(int *a, int n); // 函数声明
void main(void) {
int a[MAX] = {8, 97, 6, 125, 4, 13, 2, 71};
int i;
insert(a, MAX);
printf("after:\n");
for (i = 0; i < MAX; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
void insert(int *a, int n) {
int i, j, temp;
for (i = 1; i < n; i++) {
temp = a[i];
j = i - 1;
while (j >= 0 && a[j] > temp) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp;
}
}
```
这是一个插入排序的实现。在 `insert` 函数中,我们从数组的第二个元素开始遍历,将当前元素存储到临时变量 `temp` 中,然后在已排序的子数组中从后往前遍历,依次将比 `temp` 大的元素向后移动一位,最后将 `temp` 插入到正确的位置。
阅读全文