求助一道C语言实训编程题 分多多
建立100名学生信息登记表,其中包括学好,姓名,性别,住址,及5门功课的成绩,要求:1.输入100名学生的数据;2.显示每个学生5门功课中的最低及最高分;3.显示每门功课...
建立100名学生信息登记表,其中包括学好,姓名,性别,住址,及5门功课的成绩,要求:
1.输入100名学生的数据;
2.显示每个学生5门功课中的最低及最高分;
3.显示每门功课都不及格的学生人数;
4.检索学号为某指定数的学生信息。
自己编的4个功能函数已经写出了 剩下的主函数调用 请完善啊
http://hi.baidu.com/liuqianlan/blog 展开
1.输入100名学生的数据;
2.显示每个学生5门功课中的最低及最高分;
3.显示每门功课都不及格的学生人数;
4.检索学号为某指定数的学生信息。
自己编的4个功能函数已经写出了 剩下的主函数调用 请完善啊
http://hi.baidu.com/liuqianlan/blog 展开
2个回答
展开全部
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdio.h>
struct student
{
int no;
char name[20];
char sex;
char address[40];
int score[5];
};
struct student stu[100];
void input(struct student *studn,int n)
{
int s,i;
for (s=0; s<n; ++s) {
printf("请输入第%d位学生的信息:\n",s+1);
printf("学号:");
scanf("%d",&studn[s].no);
fflush(stdin);
printf("姓名:");
scanf("%s",studn[s].name);
fflush(stdin);
printf("性别:");
scanf("%c",&studn[s].sex);
fflush(stdin);
printf("住址:");
scanf("%s",studn[s].address);
fflush(stdin);
printf("学生成绩:\n");
fflush(stdin);
for(i=0;i<5;i++)
{
printf("成绩%d:",i+1);
scanf("%d",&studn[s].score[i]);
}
}
}
void fenshu(int fs[],int num)
{
int i,max,min;
max=fs[0];
min=fs[0];
for(i=1;i<num;i++)
{
if(max<fs[i])
max=fs[i];
if(min>fs[i])
min=fs[i];
}
printf("%d门功课最高分为:%d,最低分为:%d\n",num,max,min);
}
void min(struct student *st,int n)
{
int i;
for (i = 0; i<n; i++) {
printf("第%d位学生,",i+1);
fenshu(st->score,5);
}
}
void jige(struct student jg[],int num,int k)
{
int n,m,s,j=0;
for(n=0;n<num;n++)
{
for(m=0,s=0;m<k;m++)
{
if(jg[n].score[m]<60)
s++;
}
if(s==k)
j++;
}
printf("%d门都不及格的人数有:%d\n",k,j);
}
void jiansuo(struct student js[],int num)
{
int n,s;
int count,found=0 ;
printf("请输入要检索的学生的学号:");
scanf("%d",&count);
for(n=0;n<num;n++)
{
if(js[n].no==count)
{
found=1;
printf("学号:%d\n",js[n].no);
printf("姓名:%s\n",js[n].name);
printf("性别:%c\n",js[n].sex);
printf("住址:%s\n",js[n].address);
for(s=0;s<5;s++)
printf("第%d门成绩为:%d\n",s+1,js[n].score[s]);
break;
}
}
if (!found) {
printf("没有找到学号为%d的学生!\n",count);
}
}
int main(void)
{
struct student stu[100];
int ch=-1;
while (ch)
{
printf("\n1.输入100名学生的数据;\n2.显示每个学生5门功课中的最低及最高分;\n3.显示每门功课都不及格的学生人数;\n4.检索学号为某指定数的学生信息\n5.退出\n\n");
printf("请选择(1~5):");
fflush(stdin);
scanf("%d",&ch);
switch (ch) {
case 1:input(stu,100);break;
case 2:min(stu,100);break;
case 3:jige(stu,100,5);break;
case 4:jiansuo(stu,100);break;
case 5:ch=0;break;
default:printf("输入错误,请重试!\n");
}
}
return 0;
}
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdio.h>
struct student
{
int no;
char name[20];
char sex;
char address[40];
int score[5];
};
struct student stu[100];
void input(struct student *studn,int n)
{
int s,i;
for (s=0; s<n; ++s) {
printf("请输入第%d位学生的信息:\n",s+1);
printf("学号:");
scanf("%d",&studn[s].no);
fflush(stdin);
printf("姓名:");
scanf("%s",studn[s].name);
fflush(stdin);
printf("性别:");
scanf("%c",&studn[s].sex);
fflush(stdin);
printf("住址:");
scanf("%s",studn[s].address);
fflush(stdin);
printf("学生成绩:\n");
fflush(stdin);
for(i=0;i<5;i++)
{
printf("成绩%d:",i+1);
scanf("%d",&studn[s].score[i]);
}
}
}
void fenshu(int fs[],int num)
{
int i,max,min;
max=fs[0];
min=fs[0];
for(i=1;i<num;i++)
{
if(max<fs[i])
max=fs[i];
if(min>fs[i])
min=fs[i];
}
printf("%d门功课最高分为:%d,最低分为:%d\n",num,max,min);
}
void min(struct student *st,int n)
{
int i;
for (i = 0; i<n; i++) {
printf("第%d位学生,",i+1);
fenshu(st->score,5);
}
}
void jige(struct student jg[],int num,int k)
{
int n,m,s,j=0;
for(n=0;n<num;n++)
{
for(m=0,s=0;m<k;m++)
{
if(jg[n].score[m]<60)
s++;
}
if(s==k)
j++;
}
printf("%d门都不及格的人数有:%d\n",k,j);
}
void jiansuo(struct student js[],int num)
{
int n,s;
int count,found=0 ;
printf("请输入要检索的学生的学号:");
scanf("%d",&count);
for(n=0;n<num;n++)
{
if(js[n].no==count)
{
found=1;
printf("学号:%d\n",js[n].no);
printf("姓名:%s\n",js[n].name);
printf("性别:%c\n",js[n].sex);
printf("住址:%s\n",js[n].address);
for(s=0;s<5;s++)
printf("第%d门成绩为:%d\n",s+1,js[n].score[s]);
break;
}
}
if (!found) {
printf("没有找到学号为%d的学生!\n",count);
}
}
int main(void)
{
struct student stu[100];
int ch=-1;
while (ch)
{
printf("\n1.输入100名学生的数据;\n2.显示每个学生5门功课中的最低及最高分;\n3.显示每门功课都不及格的学生人数;\n4.检索学号为某指定数的学生信息\n5.退出\n\n");
printf("请选择(1~5):");
fflush(stdin);
scanf("%d",&ch);
switch (ch) {
case 1:input(stu,100);break;
case 2:min(stu,100);break;
case 3:jige(stu,100,5);break;
case 4:jiansuo(stu,100);break;
case 5:ch=0;break;
default:printf("输入错误,请重试!\n");
}
}
return 0;
}
//---------------------------------------------------------------------------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询