主题:出错了!!请高手指教
代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
long stuid;
char name[10];
long phoneNo;
struct student *next;
}LStu,*Stulist;
//建立一个学生信息
Stulist creatStu()
{
Stulist s;
s = (Stulist)malloc ( sizeof(LStu) );
if(!s)
{
printf("存储分配失败!\n");
exit(0);
}
printf("请输入学生的学号:\n");
scanf("%ld",&(s->stuid));
printf("请输入学生的姓名:\n");
scanf("%s",s->name);
printf("请输入学生的电话号码:\n");
scanf("%ld",&(s->phoneNo));
// printf("%s\n",s->name);
// printf("%ld\n",s->phoneNo);
// printf("%ld\n",s->stuid);
return s;
}
//初始化链表
void initList(Stulist *L)
{
Stulist s;
(*L) = NULL;
s = (Stulist)malloc ( sizeof(LStu) );
s->next = (*L);
(*L) = s;
printf("链表已创建...\n");
}
//创建链表
void createList(Stulist *L)
{
int i = 1;
int j = 1;
initList(L);
printf("现在需要添加学生信息吗?(1.是/0.否)\n");
scanf("%d",&i);
while(i)
{
insertElement((*L),j);
j++;
printf("继续吗?(1.是/0.否)\n");
scanf("%d",&i);
}
}
//向链表中插入元素
void insertElement(Stulist L,int i)
{///////////////////////////////////////////报告说有错
Stulist p,s;
int j = 0;
p = L;
s = creatStu();
while (p && j < i-1)
{
p = p->next;
++j;
}
if(!p||j>i-1)
{
printf("插入位置有错!\n");
return;
}
s->next = p->next;
p->next = s;
// return 1;
}
//主函数
void main()
{
int i = 1,location;
Stulist L;
while(i)
{
printf("请选择:\n");
printf("1.建立链表 2.删除元素 3.插入元素 4.输出元素 5.显示全部 0.退出\n");
scanf("%d",&i);
switch(i)
{
case 1: createList(&L);
break;
case 2: printf("请输入要删除元素的位置.\n");
scanf("%d",&location);
deleteElementAt(L,location);
break;
case 3: printf("请输入要插入的位置.\n");
scanf("%d",&location);
if(insertElement(L,location))
printf("插入已完成\n");
break;
case 4: printf("请输入要输出元素的位置.\n");
scanf("%d",&location);
getElementAt(L,location);
break;
case 5: showAll(L); break;
}
}
}
错误提示:
c:\documents and settings\owner\桌面\program\数据结构\错误\error2.c(66) : error C2371: 'insertElement' : redefinition; different basic types
请问是什么意思,怎样改啊
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
long stuid;
char name[10];
long phoneNo;
struct student *next;
}LStu,*Stulist;
//建立一个学生信息
Stulist creatStu()
{
Stulist s;
s = (Stulist)malloc ( sizeof(LStu) );
if(!s)
{
printf("存储分配失败!\n");
exit(0);
}
printf("请输入学生的学号:\n");
scanf("%ld",&(s->stuid));
printf("请输入学生的姓名:\n");
scanf("%s",s->name);
printf("请输入学生的电话号码:\n");
scanf("%ld",&(s->phoneNo));
// printf("%s\n",s->name);
// printf("%ld\n",s->phoneNo);
// printf("%ld\n",s->stuid);
return s;
}
//初始化链表
void initList(Stulist *L)
{
Stulist s;
(*L) = NULL;
s = (Stulist)malloc ( sizeof(LStu) );
s->next = (*L);
(*L) = s;
printf("链表已创建...\n");
}
//创建链表
void createList(Stulist *L)
{
int i = 1;
int j = 1;
initList(L);
printf("现在需要添加学生信息吗?(1.是/0.否)\n");
scanf("%d",&i);
while(i)
{
insertElement((*L),j);
j++;
printf("继续吗?(1.是/0.否)\n");
scanf("%d",&i);
}
}
//向链表中插入元素
void insertElement(Stulist L,int i)
{///////////////////////////////////////////报告说有错
Stulist p,s;
int j = 0;
p = L;
s = creatStu();
while (p && j < i-1)
{
p = p->next;
++j;
}
if(!p||j>i-1)
{
printf("插入位置有错!\n");
return;
}
s->next = p->next;
p->next = s;
// return 1;
}
//主函数
void main()
{
int i = 1,location;
Stulist L;
while(i)
{
printf("请选择:\n");
printf("1.建立链表 2.删除元素 3.插入元素 4.输出元素 5.显示全部 0.退出\n");
scanf("%d",&i);
switch(i)
{
case 1: createList(&L);
break;
case 2: printf("请输入要删除元素的位置.\n");
scanf("%d",&location);
deleteElementAt(L,location);
break;
case 3: printf("请输入要插入的位置.\n");
scanf("%d",&location);
if(insertElement(L,location))
printf("插入已完成\n");
break;
case 4: printf("请输入要输出元素的位置.\n");
scanf("%d",&location);
getElementAt(L,location);
break;
case 5: showAll(L); break;
}
}
}
错误提示:
c:\documents and settings\owner\桌面\program\数据结构\错误\error2.c(66) : error C2371: 'insertElement' : redefinition; different basic types
请问是什么意思,怎样改啊