利用线性表实现学生信息的插入、删除、查找、打印的等功能。
各位大神救救小女子、新手上路,表示一脸懵逼{:10_250:}根据书上改编和自己理解走到了这一步。。。
#include<stdio.h>
#include<malloc.h>
#include<Windows.h>
#include<string.h>
#define OK 1
#define error 0
struct getstu
{
char name;
int num;
float score;
struct getstu *next;
int last;
}p;
struct newstu
{
char a;
int num;
float score;
};
int InList(getstu *l,int i,newstu *e)
{
int k;
if((i<1)&&(i>l->last+2))
{
printf("插入i的位置不合法");
return(error);
}
for(k=l->last;k>=i-1;k--)
{
l=l->next;
l->name=e->a;
l->num=e->num;
l->score=e->score;
l->last++;
}
return(OK);
};
int destu(getstu *l,int i)
{
int k;
if((i<1)||(i>l->last+1))
{
printf("删除位置不合法!");
return(error);
}
for(k=i;i<=l->last;k++)
l=l->next;
l->last--;
return(OK);
}
int main()
{
struct getstu *q;
struct newstu *p;
int a;
int i,c,b;
for(i=0;i<50;i++)
{
printf("请问您是建立学生信息(1)或者插入学生信息(2)亦或是删除学生信息(3):\n");
scanf("%d",&c);
if(c==1)
{
printf("请输入学生的姓名:\n");
scanf("%s",&q->name);
printf("请输入学生的学号:\n");
scanf("%d",&q->num);
printf("请输入学生的分数:\n");
scanf("%f",&q->score);
}
if(c==2)
{
printf("请输入您要插入学生的名字:\n");
scanf("%s",&p->a);
printf("请输入您要插入的学号:\n");
scanf("%d",&p->num);
printf("请输入您要插入的学生的分数 :\n");
scanf("%f",&p->score);
printf("请输入您要插入的位置:\n");
scanf("%d",&b);
int InList(getstu *l,int b,newstu *p);
}
if(c==3)
{
printf("请输入您要删除学生的位置:\n");
scanf("%s",&b);
int destu(getstu *l,int b);
}
}
system("pause");
return 0;
}
不理解你想表达什么 哪里有疑问可以说出来 ba21 发表于 2019-3-22 18:28
不理解你想表达什么
这个程序我不知道 如何输出?{:10_266:} 九少 发表于 2019-3-22 21:20
哪里有疑问可以说出来
我想问下程序都有些 什么错哦
页:
[1]