c语言数据结构:用链表追加删除学生信息,我编写的追加学生信息程序,不知道哪里错了,希望大神指点每个学生的成绩信息包括:学号、 语文、数学、英语、总分、加权平均分;采用链表存储若干学生的成绩信息:可以在链表末尾追加新学生的成 绩信息;可以根据学号,删除该学生的成绩信 息。 #in
c语言数据结构:用链表追加删除学生信息,我编写的追加学生信息程序,不知道哪里错了,希望大神指点每个学生的成绩信息包括:学号、 语文、数学、英语、总分、加权平均分;采用链表存储若干学生的成绩信息:可以在链表末尾追加新学生的成 绩信息;可以根据学号,删除该学生的成绩信 息。 #include #include typedef struct student_i... 每个学生的成绩信息包括:学号、 语文、数学、英语、总分、加权平均分;采用链表存储若干学生的成绩信息:可以在链表末尾追加新学生的成 绩信息;可以根据学号,删除该学生的成绩信 息。
#include
#include
typedef struct student_infor
{int studentID; float chinese;float math;float English;float sum;float P_avarage;struct student_infor *next;}student;
student*input(int n)
{
int i;student*p,*stu;
for(i=0,stu=NULL;istudentID,&p->chinese,&p->math,&p->English);
p->sum=(p->chinese) (p->math) (p->English);
p->P_avarage=(p->chinese)*0.3 (p->math)*0.5 (p->English)*0.2;
p->next=stu;
stu=p;}
return stu;}
void output(student*p)
{
printf("输出学生信息:
");
printf("学生学号:%d",p->studentID);
printf("语文成绩:%.1f",p->chinese);
printf("数学成绩:%.1f",p->math);
printf("英语成绩:%.1f",p->English);
printf("总分:%.1f",p->sum);
printf("加权平均分:%.1f",p->P_avarage);
}
void visit(student* stu,void(*fun)())
{student *p;
for(p=stu;p!=NULL;p=p->next)
{(*fun)(p);}
}
void delect(student*p,int ID)
{printf("请输入需要删除的学生学号:
");
scanf("%d",&ID);
student*t=NULL,*s=NULL;
s=p;
t=p->next;
while(t)
{
if((t->studentID)==ID)
{s->next=t->next;}
else{t=t->next;s=s->next;}}
}
int main()
{
int n,m,ID;student*p,*stu;
printf("请输入需要录入的学生人数:
");
scanf("%d",&n);
stu=input(n);
delect(p,ID);
visit(stu,output);
return 0;
} 展开
展开
全部