哪位大神能幫我修改一下這題,拜托了,在線等,急!有很多錯誤呀!
每個學生的成績資訊包括:學號、語文、數學、英語、總分、加權平均分;采用動態方法創建陣列用于存盤若干學生的成績資訊;輸入學生的學號、語文、數學、英語成績;計算學生的總分和加權平均分(語文占30%,數學占50%,英語占20%) ;
輸出學生的成績資訊。
可以在陣列末尾追加新學生的成績資訊;可以根據學號,洗掉該學生的成績資訊。可以根據學號或總分,升序排序學生的成績資訊。
#include<stdio.h>
#include<stdlib.h>
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;
}

uj5u.com熱心網友回復:
第一個,三個專案應該是累加的吧?你中間少了加號+轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/149558.html
標籤:疑難問題
上一篇:ios點擊事件無效問題
