一个关于顺序表插入的vc++程序

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:31:47
问一下,以下一个关于顺序表插入的vc++程序错在哪里?

#include"stdio.h"
#include"time.h"
#define max 5
#include"stdlib.h"
void insert(int *list,int num,int data);
void main()
{
int i,list[max+1]={0};
int num,data;
time_t t;
srand((unsigned)time(&t));
for(i=0;i<max;i++)
list[i]=rand()%10;
printf("插入前的数据是:");
for(i=0;i<max;i++)
printf("%3d",list[i]);
printf("\n");
printf("请输入要插入的位置和要插入的数据:");
scanf("%d,%d",&num,&data);
insert(list,num,data);
printf("插入后的数据是:");
for(i=0;i<max+1;i++)
printf("%3d",list[i]);
printf("\n");

}
void insert(int *list,int num,int data)
{
int i;
for(i=max-1;i>num-1;i--)
list[i+1]=list[i];
list[num-1]=data;

}

scanf("%d,%d",&num,&data);
由于你指定了两个整数以,隔开,所以你必须先输入一个数,再输入一个,再输入另一个数。
建议改成
scanf("%d%d",&num,&data);符合习惯

这个的最后一行也要改
void insert(int *list,int num,int data)
{
int i;
for(i=max-1;i>num-1;i--)
list[i+1]=list[i];
list[num]=data;
}