以下是我自己编写的C语言的程序,运行没有错误,但输出的结果不对,请哪位高手帮忙看那一下,急!!谢啦~
#include<stdio.h>structSTUDENT{charid[10];intscore[5];doubleave;}stu[10];voidaverage(...
#include<stdio.h>
struct STUDENT
{
char id[10];
int score[5];
double ave;
}
stu[10];
void average();
void nopass();
void good();
void main()
{int num=10,i,j;
for(i=0;i<num;i++)
{
printf("\t请输入第%d个学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
average();
nopass();
good();
}
void average()
{int a=0,i;
float b=0;
for(i=0;i<10;i++)
a=a+stu[i].score[0];
b=a/10;
printf("\t the average score is :%f",b);
}
void nopass()
{
printf("不及格学生");
int i,j,sum=0;
for(i=0;j<10;i++)
{for(j=0;j<5;j++)
{if(stu[i].score[j]<60)
sum=sum++;
}
if(sum>=2)
{for(j=0;j<5;j++)
printf("第%d门成绩为%d\n",j+1,stu[i].score[j]);
printf("学号:%s\n",stu[i].id);
for(j=0;j<5;j++)
sum+=stu[i].score[j];
stu[i].ave=sum/5.0;
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
void good()
{
printf("\t优秀学生\n\n");
int i,j,n,k,sum=0;
for(i=0;i<10;i++)
{ for(j=0;j<5;j++)
{
if(stu[i].score[j]>80)
sum++;
}
if(sum=5)
{
n=0;
for(j=0;j<5;j++)
printf("第%d门的成绩%d",j+1,stu[i].score[j]);
printf("学号%s",stu[i].id);
for(j=0;j<5;j++)
n=n+stu[i].score[j];
stu[i].ave=n/5.0;
printf("\t平均成绩%f\n",stu[i].ave);
}
}
for(i=0;i<10;i++)
{ k=0;
for(j=0;j<5;j++)
{ k+=stu[i].score[j];
stu[i].ave=k/5.0;
if(stu[i].ave>85)
{
for(j=0;j<5;j++)
printf("第%d门的成绩%d",j+1,stu[i].score[j]);
printf("学号%s",stu[i].id);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
}
题目:一个班有10个学生,每个学生有学号,以及数学,物理,英语,语文,体育5门课的成绩信息。分别编写3个函数以实现以下3个要素:
(1)求数学的平均成绩
(2)对于有两门以上课程不及格的学生,输出他们的学号,各门课成绩及平均成绩
(3)输出成绩优良的学生(平均成绩在85分以上或全部成绩都在80分以上)的学号,各门课成绩和平均成绩 展开
struct STUDENT
{
char id[10];
int score[5];
double ave;
}
stu[10];
void average();
void nopass();
void good();
void main()
{int num=10,i,j;
for(i=0;i<num;i++)
{
printf("\t请输入第%d个学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
average();
nopass();
good();
}
void average()
{int a=0,i;
float b=0;
for(i=0;i<10;i++)
a=a+stu[i].score[0];
b=a/10;
printf("\t the average score is :%f",b);
}
void nopass()
{
printf("不及格学生");
int i,j,sum=0;
for(i=0;j<10;i++)
{for(j=0;j<5;j++)
{if(stu[i].score[j]<60)
sum=sum++;
}
if(sum>=2)
{for(j=0;j<5;j++)
printf("第%d门成绩为%d\n",j+1,stu[i].score[j]);
printf("学号:%s\n",stu[i].id);
for(j=0;j<5;j++)
sum+=stu[i].score[j];
stu[i].ave=sum/5.0;
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
void good()
{
printf("\t优秀学生\n\n");
int i,j,n,k,sum=0;
for(i=0;i<10;i++)
{ for(j=0;j<5;j++)
{
if(stu[i].score[j]>80)
sum++;
}
if(sum=5)
{
n=0;
for(j=0;j<5;j++)
printf("第%d门的成绩%d",j+1,stu[i].score[j]);
printf("学号%s",stu[i].id);
for(j=0;j<5;j++)
n=n+stu[i].score[j];
stu[i].ave=n/5.0;
printf("\t平均成绩%f\n",stu[i].ave);
}
}
for(i=0;i<10;i++)
{ k=0;
for(j=0;j<5;j++)
{ k+=stu[i].score[j];
stu[i].ave=k/5.0;
if(stu[i].ave>85)
{
for(j=0;j<5;j++)
printf("第%d门的成绩%d",j+1,stu[i].score[j]);
printf("学号%s",stu[i].id);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
}
题目:一个班有10个学生,每个学生有学号,以及数学,物理,英语,语文,体育5门课的成绩信息。分别编写3个函数以实现以下3个要素:
(1)求数学的平均成绩
(2)对于有两门以上课程不及格的学生,输出他们的学号,各门课成绩及平均成绩
(3)输出成绩优良的学生(平均成绩在85分以上或全部成绩都在80分以上)的学号,各门课成绩和平均成绩 展开
4个回答
展开全部
优化了一下你的程序代码,你再试试
#include<stdio.h>
struct STUDENT
{
char id[10];
int score[5];
double sum; //这里增加一个总分,方便处理,录入时就完成
double ave; //总分与平均分的计算
} stu[10];
void average();
void nopass();
void good();
int main()
{
int num=10,i,j;
for(i=0;i<num;i++)
{
printf("\t请输入第%d个学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
stu[i].sum=0;
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
stu[i].sum += stu[i].score[j] ;
}
stu[i].ave= stu[i].sum/5 ;
}
average();
nopass();
good();
}
void average()
{
//int a=0,i; a必须是float,否则b=a/10就按整数除了
int i;
double a=0,b=0;
for(i=0;i<10;i++)
a=a+stu[i].score[0];
b=a/10;
printf("\t the math average score is :%f",b);
}
void nopass()
{
printf("不及格学生\n");
int i,j,sum=0;
for(i=0;i<10;i++)
{
sum=0;
for(j=0;j<5;j++)
{
if(stu[i].score[j]<60)
sum++;
}
if(sum>=2)
{
printf("学号:%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门成绩为%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
void good()
{
printf("\t优秀学生\n\n");
int i,j,n,k,sum=0;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
if(stu[i].score[j]<80) //有一门不足,就中止检查
break ;
}
if(j==5)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
else
if (stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
/**
for(i=0;i<10;i++)
{
if(stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
***/
}
#include<stdio.h>
struct STUDENT
{
char id[10];
int score[5];
double sum; //这里增加一个总分,方便处理,录入时就完成
double ave; //总分与平均分的计算
} stu[10];
void average();
void nopass();
void good();
int main()
{
int num=10,i,j;
for(i=0;i<num;i++)
{
printf("\t请输入第%d个学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
stu[i].sum=0;
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
stu[i].sum += stu[i].score[j] ;
}
stu[i].ave= stu[i].sum/5 ;
}
average();
nopass();
good();
}
void average()
{
//int a=0,i; a必须是float,否则b=a/10就按整数除了
int i;
double a=0,b=0;
for(i=0;i<10;i++)
a=a+stu[i].score[0];
b=a/10;
printf("\t the math average score is :%f",b);
}
void nopass()
{
printf("不及格学生\n");
int i,j,sum=0;
for(i=0;i<10;i++)
{
sum=0;
for(j=0;j<5;j++)
{
if(stu[i].score[j]<60)
sum++;
}
if(sum>=2)
{
printf("学号:%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门成绩为%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
void good()
{
printf("\t优秀学生\n\n");
int i,j,n,k,sum=0;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
if(stu[i].score[j]<80) //有一门不足,就中止检查
break ;
}
if(j==5)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
else
if (stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
/**
for(i=0;i<10;i++)
{
if(stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
***/
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (i=0;tt[i]=!'\0';i++)
修改为
for (i=0;tt[i] !='\0';i++)
应该是你写忙了。
修改为
for (i=0;tt[i] !='\0';i++)
应该是你写忙了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
struct STUDENT
{
char id[10];
int score[5];
double sum; //*这里增加一个总分,方便处理,录入时就完成
double ave; //*总分与平均分的计算
} stu[10];
void average();
void nopass();
void good();
void main()
{
int num=10,i,j;
for(i=0;i<num;i++)
{
printf("\t请输入第%d个学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
stu[i].sum=0;
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
stu[i].sum += stu[i].score[j] ;
}
stu[i].ave= stu[i].sum/5 ;
}
average();
nopass();
good();
}
void average()
{
//int a=0,i; a必须是float,否则b=a/10就按整数除了
int i;
double a=0,b=0;
for(i=0;i<10;i++)
a=a+stu[i].score[0];
b=a/10;
printf("\t the math average score is :%f",b);
}
void nopass()
{
printf("不及格学生\n");
int i,j,sum=0;
for(i=0;i<10;i++)
{
sum=0;
for(j=0;j<5;j++)
{
if(stu[i].score[j]<60)
sum++;
}
if(sum>=2)
{
printf("学号:%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门成绩为%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
void good()
{
printf("\t优秀学生\n\n");
int i,j,sum=0;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
if(stu[i].score[j]<80) //有一门不足,就中止检查
break ;
}
if(j==5)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
else
if (stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
for(i=0;i<10;i++)
{
if(stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
struct STUDENT
{
char id[10];
int score[5];
double sum; //*这里增加一个总分,方便处理,录入时就完成
double ave; //*总分与平均分的计算
} stu[10];
void average();
void nopass();
void good();
void main()
{
int num=10,i,j;
for(i=0;i<num;i++)
{
printf("\t请输入第%d个学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
stu[i].sum=0;
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
stu[i].sum += stu[i].score[j] ;
}
stu[i].ave= stu[i].sum/5 ;
}
average();
nopass();
good();
}
void average()
{
//int a=0,i; a必须是float,否则b=a/10就按整数除了
int i;
double a=0,b=0;
for(i=0;i<10;i++)
a=a+stu[i].score[0];
b=a/10;
printf("\t the math average score is :%f",b);
}
void nopass()
{
printf("不及格学生\n");
int i,j,sum=0;
for(i=0;i<10;i++)
{
sum=0;
for(j=0;j<5;j++)
{
if(stu[i].score[j]<60)
sum++;
}
if(sum>=2)
{
printf("学号:%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门成绩为%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
void good()
{
printf("\t优秀学生\n\n");
int i,j,sum=0;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
{
if(stu[i].score[j]<80) //有一门不足,就中止检查
break ;
}
if(j==5)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
else
if (stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
for(i=0;i<10;i++)
{
if(stu[i].ave>85)
{
printf("学号%s\n",stu[i].id);
for(j=0;j<5;j++)
printf("第%d门的成绩%d\n",j+1,stu[i].score[j]);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么问题,我也不愿运行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询