【正确答案】算法由主函数和插入、输出三个函数组成。
程序如下:
#include<stdio.h>
#define MAXLEN 20
void insertsqlist(int x,int s[],int *np)/*插入结点x到有序表中*/
{
int n;
n=*np; /*有序表长度*/
if(n=0)
s[n]=x;
else
{
while(s[n-1]>x) /*从后向前移动结点,确定x的插入位置*/
{
s[n]=s[n-1];
n=n-1:
}
s[n]=x; /*插入x*/
}
++(*np); /*有序表长度加1*/
}
void print(int S[],int*np) /*输出有序表各结点*/
{
int i,n;
n=*np;
for(i=0;i<n;i++)
{
printf("/%d",s[i]);
}
printf("\n");
}
main() /*主函数*/
int a[MAXLEN]={11,33,55,66,77,88,99};
int c,$e;
e=30; /*插入30*/
*e=7;
print(a,e); /*插入前输出有序表*/
insertsqlist(c,a,e); /*插入一个结点到有序表*/
print(a,e); /*插入后输出有序表*/
}
输出结果为:
11 33 55 66 77 88 99
11 30 33 55 66 77 88 99
【答案解析】