DiddleL 2017-10-22 11:21 采纳率: 0%
浏览 1043

数据结构,顺序表程序 C语言

/* 2017.10.15第一次编译
2017.10.17 修改 添加姓名搜索功能
2017.10.18 修改 修改new函数外观
*/

#include
#include
#include
#include
typedef struct
{
char num[20];
char name[20];
int score;
}Node;
typedef struct
{
Node *Elem;
int max;
}List;

int a=-1;
void new()
{
puts(" ***************************************** ");
puts(" * 欢迎进入学生信息统计 * ");
puts(" * 1.输入学生的人数 * ");
puts(" * 2.显示学生信息 * ");
puts(" * 3.根据姓名检索学生信息 * ");
puts(" * 4.显示指定学生信息 * ");
puts(" * 5.在指定位置插入学生信息 * ");
puts(" * 6.删除指定位置学生信息 * ");
puts(" * 7.统计学生个数信息 * ");
puts(" * 8.输入ctrl+Z 或者 exit退出程序 * ");
puts(" ***************************************** ");

}
void ListInsert(List L,int ad,Node p) //在指定位置之后插入
{
int i;
for(i=a;i>ad;i--)
{
L.Elem[i+1]=L.Elem[i];
L.Elem[ad+1] = p;
}

}

void ListDelete(int n,List L) //删除指定位置的信息
{
int i;
for(i=a;i<=a;i++)
L.Elem[i]=L.Elem[i+1];
}
void InitList(int n,List L) //录入信息
{
int i;
for (i = 1;i<=n;i++)
{
printf("plz input number:");
scanf("%s",L.Elem[i].num);
printf("plz input name:");
scanf("%s",L.Elem[i].name);
printf("plz input score:");
scanf("%s",L.Elem[i].score);
put("Input complete");
}
Node polling(int ad,List L) //学号查询
{
return L.Elem[ad];
}
int SearchName(char nam,List L,Node p) //姓名查询
{
int i;
for(i=1;i<=a;i++)
{
if(strcmp(L.Elem[i].name,nam)==0)
{
p = L.Elem[i];
}
else return 0;
}
int main()
{ int SearchName();
void InitList();

char cmp[20];
new();
int a1,a2;
int ad;
List L;
L.max = 999;
Node p;
L.Elem = (Node *)malloc(sizeof (Node)*L.max);
while(1)
{
    printf("请输入菜单号:");
    scanf("%d",a1);
    if(a1<1||a1>7)

{
puts("error\n");
continue;
}
if((a1!=1&&a1!=1)&&a == -1)
{
puts("您还未录入学生信息!ERROR!");
continue;
}

 switch(a2)

{
case 1:
if(a !=-1)
{
printf("您已经输入过学生信息");
break;
}
printf("请输入学生人数(0~999):");
scanf("%d",&a);
if(a<=0||a>999)
{
printf("输入非法,请重新输入\n");
continue;
}
InitList(a,L);
puts("");
break;
case 2:
printf("学号\t 姓名\t 成绩\n");
for(i = 1;i <= a;i++)
{
p=polling(i,L);
printf("%s\t\t %s\t\t%d\t\t",p.num,p.name,p.score);
}
printf("OK\n");
break;
case 3:

   scanf("%s",cmp);
   if(SearchName(cmp,L,p))

{
puts("查找成功!");
puts("输出为:");
printf("学号:%s,\t 姓名:%s\t 成绩:%s\t",p.num,p.name,p.score);
}
else puts("查无此人\n");
printf("OK\n");
break;
case 4:
printf("请输入要查询的人的序号:");
scanf("%d",&i);
if(i>a||i<=0)
{
puts("ERROR");
puts("");
break;
}
puts("查找成功");
puts("学生信息马上输出");
p=polling(i,L);
printf("%s\t\t %s\t\t,&d\t\t",p.num,p.name,p.score);
printf("OK!");
puts("");
break;
case 5 :
if(a == 999)
{
puts("对不起,顺序表已满,无法进行任何操作,请先删除无关数据");
puts("");
continue;
}
printf("请输入要插入的位置,数值(0~学生最大数");
while(scanf("%d",&ad))
{

   if(ad >999 && ad < 0)
   printf("输入非法,请重新输入:");
   else
        break;

}

   printf("请输入学号:");
   scanf("%s",p.num);
   printf("请输入姓名:");
   scanf("%s",p.name);
   printf("请输入成绩:");
   scanf("%d",p.score);
   ListInsert(L,ad,p);
   a++;
   printf("OK");
   printf("\n");
   break;
   case 7:
   printf("学生总数为:%d",a);
   printf("OK!");
   printf("\n");
   break;

}
}
printf("程序结束 按CTRL+z退出");
return 0;
}

源代码如下
为什么总是出现两个错误,求大哥帮忙解决!

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-10-23 12:41
    关注
     void new()
    new在c++里是关键字,不能作为函数名
    
    
    void InitList(int n,List L)     //录入信息
    {
       int i;
       for (i = 1;i<=n;i++)
    {
       printf("plz input number:");
       scanf("%s",L.Elem[i].num);
       printf("plz input name:");
       scanf("%s",L.Elem[i].name);
       printf("plz input score:");
       scanf("%s",L.Elem[i].score);
       put("Input complete");
    }
    这个函数少后括号
    
    别的没往下看,错误太多。
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!