怎么让这个程序运行起来?

阿吖呆 2012-11-13 05:17:14
#include <stdio.h>
#define MAX 20 //存储空间初始分配量
typedef struct student
{
int data [MAX];
int last;

}list; //定义表结构

void init(list *l)
{
l->last = 0;
} //定义一个空表

int length(list l)
{
return(l.last);
} //计算有效表长

void insert(list *l,int i,int x)
{
int j;

if(i<1||i>l->last+1)
printf("位置错");
else
if(l->last==MAX-1)
printf("表满");
else
for(j=l->last;j>=i;j--)
l->data[j+1] = l->data[j];
l->data[i] = x;
l->last++;
}
void main(list*l)
{
void init(list *l);
int length(list l);
void insert(list *l,int i,int x);//函数声明
int i;

init(l);
scanf("%d",&i);//如何让用户输入数据
for(i=0;i<l->last+1;i++)
printf("%d\n",l->data[i]);
printf("length:",length(*l));//输出表长
}
...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫步者、 2012-11-13
  • 打赏
  • 举报
回复

#include <stdio.h>
#define MAX 20	 //存储空间初始分配量
typedef struct student
{
	int data [MAX];
	int last;

}list;	 //定义表结构

void init(list *l)
{
	l->last = 0;
}	 //定义一个空表

int length(list l)
{
	return(l.last);
}	 //计算有效表长

void insert(list *l,int i,int x)
{
	int j;

	if(i<1||i>l->last+1)
		printf("位置错");
	else	
		if(l->last==MAX-1)
			printf("表满");	
		else
			for(j=l->last;j>=i;j--)
				l->data[j+1] = l->data[j];
	l->data[i] = x;
	l->last++;
}	
void main(void)//去掉参数list*l
{
	list l; //添加
	void init(list *l);
	int length(list l);
	void insert(list *l,int i,int x);//函数声明
	int i;

	init(&l);
	scanf("%d",&i);//如何让用户输入数据
	for(i=0;i<l.last+1;i++)
		printf("%d\n",l.data[i]);
	printf("length:%d",length(l));//输出表长
}

//没有编译错误,但是你的代码还有大量的问题,你是认真思考一下。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧