跪求一道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分以上的学生的学号, 各学号之间用一个空格分隔。
有满意的答案会加分的!! 急求啊 展开
某班有N(N<=30)个学生,共开设5门课程,分别用三个函数实现如下功能:
⑴求第一门课程的平均分;
⑵找出有2门及2门以上不及格的学生,并输出其学号;
⑶找出平均成绩在90分以上的学生,输出他们的学号。
要求输入:
第一行为一个整数N,表示本班共N个人,接下来的N行中每行包含一个学生的信息,包括学号(长度小于10的字符串)、课程1成绩、课程2成绩、课程3成绩、课程4成绩、课程5成绩。成绩均为整数。
输出共三行:
第一行为本班第一门课程的平均成绩。(保留小数点后两位)
第二行为有2门及2门以上不及格的学生的学号,各学号之间用一个空格分隔。
第三行为平均成绩在90分以上的学生的学号, 各学号之间用一个空格分隔。
有满意的答案会加分的!! 急求啊 展开
1个回答
展开全部
#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++下运行
#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++下运行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询