跪求一道C语言题的代码!!! 10

用结构数组实现学生成绩统计各功能。某班有N(N<=30)个学生,共开设5门课程,分别用三个函数实现如下功能:⑴求第一门课程的平均分;⑵找出有2门及2门以上不及格的学生,并... 用结构数组实现学生成绩统计各功能。
某班有N(N<=30)个学生,共开设5门课程,分别用三个函数实现如下功能:
⑴求第一门课程的平均分;
⑵找出有2门及2门以上不及格的学生,并输出其学号;
⑶找出平均成绩在90分以上的学生,输出他们的学号。
要求输入:
第一行为一个整数N,表示本班共N个人,接下来的N行中每行包含一个学生的信息,包括学号(长度小于10的字符串)、课程1成绩、课程2成绩、课程3成绩、课程4成绩、课程5成绩。成绩均为整数。
输出共三行:
第一行为本班第一门课程的平均成绩。(保留小数点后两位)
第二行为有2门及2门以上不及格的学生的学号,各学号之间用一个空格分隔。
第三行为平均成绩在90分以上的学生的学号, 各学号之间用一个空格分隔。
有满意的答案会加分的!! 急求啊
展开
 我来答
西木风xi
2010-03-21
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
#include "stdio.h"
#include "conio.h"
#define NULL 0

struct student
{
char score[4];
int n;
struct student *next;
};

print()
{
struct student * head ,* p1, * p2; struct student *p;
int n=0;
p1=p2=(struct student *)malloc(sizeof(struct student));
head=NULL;
printf("intput date name,score :\n");
scanf("%d%d%d%d%d",&p1->n,&p1->score[0] ,&p1->score[1],&p1->score[2],&p1->score[3],&p1->score[3]);
while (p1->score[0]>=0)
{
n++;
if (n==1) head=p1;
p2->next=p1;
p2=p1;
p1=(struct student *)malloc(sizeof(struct student));
printf("intput date name,score :\n");
scanf("%d%d%d%d%d",&p1->n,&p1->score[0] ,&p1->score[1],&p1->score[2],&p1->score[3],&p1->score[3]);
}
p2->next=NULL;
p=head;
return(p);
}
float average(*p)
{
int sum;
int m=1;
float ave;
while(p!=NULL)
{
m++;
sum=sum+&p1->score[0];
p=p->next;
}
ave=sum/m;
printf("average is:%d",ave);
}
int evalue (*p)
{
int i;
int j;
int h=1;

while(p!=NULL)
{

for(i=0;i<=4;i++)
{
if(p1->score[i] <60)
j++;

}
if(j>=2)
{
printf("%d ",h);
}
p=p->next;
h++;

}

}

int exc(*p)
{
int num;
int m;
int r=1;
while(p!=NULL)
{
for(i=0;i<=4;i++)
{
num+=p1->score[i];
}
if(num>=90)
{
printf("%d\n",r;)

}

}
p=p->next;
r++;
}

main()
{
print();
average(*p);
evalue (*p);
exc(*p);
}

在VC++下运行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式