求助大佬,getchar()运行速度问题
  • 板块学术版
  • 楼主L203105
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/3/5 16:10
  • 上次更新2023/10/23 22:57:45
查看原帖
求助大佬,getchar()运行速度问题
832321
L203105楼主2023/3/5 16:10

在void in_Sequenlist(Sequenlist *L)函数中用getchar()函数结束输入,运行速度慢

运行后要5秒才能输入

#include<stdio.h>
#include<stdlib.h>
typedef int elemtype;
#define Maxsize 100
typedef struct sequlist{
	elemtype data[Maxsize];
	int last;
}Sequenlist;
Sequenlist * init_Sequenlist();//顺序表初始化
void in_Sequenlist(Sequenlist *L);//输入数据
int length_Sequenlist(Sequenlist *L);//求长度
void print_Sequenlist(Sequenlist *L);//打印
int insert_Sequenlist(Sequenlist *L,elemtype x,int i);//插入
int delete_Sequenlist(Sequenlist *L,int i);//删除
int main()
{
	Sequenlist *L1,*L2;
	L1=init_Sequenlist();
	L2=init_Sequenlist();
	 in_Sequenlist(L1);
	 print_Sequenlist(L1);
	 printf("\n插入后:");
	 insert_Sequenlist(L1,5,3);
	 print_Sequenlist(L1);
	 printf("\n删除后:");
	 delete_Sequenlist(L1,2);
	 print_Sequenlist(L1);
	 printf("\n");
return 0;
}
Sequenlist * init_Sequenlist()
{
	 Sequenlist *L;
		L=(Sequenlist *)malloc(sizeof(Sequenlist));
	if(L!=NULL)
	L->last=-1;
	return L;
}
//***************************************
void in_Sequenlist(Sequenlist *L)
{
	
	printf("输入数据,空格隔开,回车结束\n");
	do{
		scanf("%d",&L->data[L->last+1]);	L->last++;
	}while(getchar()!='\n');
}//*****************************************
int length_Sequenlist(Sequenlist *L)
{
	return L->last+1;
}
void print_Sequenlist(Sequenlist *L)
{
	int i;
	for(i=0;i<L->last+1;i++)
		printf("%d ",L->data[i]);
}
int insert_Sequenlist(Sequenlist *L,elemtype x,int i)
{
	int j;
	if(L->last>=Maxsize-1)
	{ 
		printf("顺序表已满\n"); 
		return 0;
	}
	if(i<1||i>L->last+2)
	{
		printf("插入位置非法\n");
		return 0;
	}
	for(j=L->last;j>=i-1;j--)
		L->data[j+1]=L->data[j];
		L->data[i-1]=x;
		L->last++;
		return 1;
}
int delete_Sequenlist(Sequenlist *L,int i)
{
	int j;
	if(i<1||i>L->last+1)
	{
		printf("删除位置非法\n"); 
		return 0;
	}
	for(j=i;j<L->last+1;j++)
		L->data[j-1]=L->data[j];
	L->last--;
	return 1;
}
2023/3/5 16:10
加载中...