输出3个学生4门课的成绩,分别用函数求1)每个学生的平均分2)每门课的平均分 3)最高分对应的学生和课程

在网上找到过相应的代码,但是调试时出现floating error point:domain的提示错误,不知道错在哪里了。请大家给个代码,一定要是编译通过的哦!谢谢了!
不好意思,我要的是在C语言环境中的代码,不是C++,不过还是谢谢你们!
请大家继续啊!

第1个回答  2009-11-30
#include <iostream>
#include <iomanip>
struct student
{int num;
char name[20];
float score[3];
};
void average_print(student *);
void top_print(student *);
void top1_print(student *);
void top2_print(student *);
void top3_print(student *);
int main()
{ student stu[3],*p;
int i;
cout<<"请输入3个学生数据:"<<endl;
for(i=0;i<3;++i)
{cin>>stu[i].num>>stu[i].name>>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2];
}
average_print(stu) ;
int z ;
do
{cout<<"请选择相应选项:"<<endl;
cout<<"1:第一门课最高分数的信息"<<endl;
cout<<"2:第二门课最高分数的信息"<<endl;
cout<<"3:第三门课最高分数的信息"<<endl;
cout<<"4:总分最高分数的信息"<<endl;
cin>>z;
switch(z)
{ case 1:top_print(stu) ;break;
case 2:top1_print(stu) ;break;
case 3:top2_print(stu) ;break;
default:top3_print(stu) ;break;
}
}while(z!=0);
return 0;
}
void average_print(student p[])
{ float x=0,y=0,z=0;
int i;
for(i=0;i<3;++i)
{ x+=p[i].score[0];
y+=p[i].score[1];
z+=p[i].score[2];
}
cout<<"第一门课平均成绩"<<x/3<<endl;
cout<<"第二门课平均成绩"<<y/3<<endl;
cout<<"第三门课平均成绩"<<x/3<<endl;
}
void top_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[0];
for(i=1;i<3;++i)
{ if(j<=point[i].score[0] )
{j=point[i].score[0];
temp= point[i];}
}

cout<<"这门课最高分为:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[0]<<endl;
}
void top1_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[1];
for(i=1;i<3;++i)
{ if(j<=point[i].score[1] )
{j=point[i].score[1];
temp= point[i];}
}

cout<<"这门课最高分为:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[1]<<endl;
}
void top2_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[2];
for(i=1;i<3;++i)
{ if(j<=point[i].score[2] )
{j=point[i].score[2];
temp= point[i];}
}

cout<<"这门课最高分为:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[2]<<endl;
}
void top3_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[0]+point[0].score[1]+point[0].score[2];
for(i=1;i<3;++i)
{ if(j<=point[i].score[0]+point[i].score[1]+point[i].score[2])
{j=point[i].score[0]+point[i].score[1]+point[i].score[2];
temp= point[i];}
}

cout<<"这门课最高分为:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[2]+temp.score[0]+temp.score[1]<<endl;
}本回答被网友采纳
第2个回答  2009-11-30
//======================================
#include<iostream>
#include<string>
#include <iomanip>
#include <fstream>
using namespace std;
//===============================
class student{
string name;
int num;
float subject1;//分别代表三个科目
float subject2;
float subject3;
public:
student(string n,int nu,float s1,float s2,float s3):name(n),num(nu),subject1(s1),subject2(s2),subject3(s3){}
float average(){
float sum,result;
sum=subject1+subject2+subject3;
result=sum/3;
return result;
}
string getName(){
return name;
}
int getNum(){
return num;}
};
//=======================================================================
void main(){
string name;
int num;
float s1,s2,s3;
cout<<"请输入姓名:"<<endl;
cin>>name;
cout<<"请输入号数:"<<endl;
cin>>num;
cout<<"请输入成绩1:"<<endl;
cin>>s1;
cout<<"请输入成绩2:"<<endl;
cin>>s2;
cout<<"请输入成绩3:"<<endl;
cin>>s3;

student stu(name,num,s1,s2,s3);

cout<<"平均数:"<<stu.average()<<endl;
ofstream outfile("b.txt");
outfile<<stu.getName()<<" "<<stu.getNum()<<" "<<stu.average()<<endl;

system("pause");

}
第3个回答  2009-11-30
00

...分别用函数求1)每个学生的平均分2)每门课的平均分 3)最高分...
cout<<"2:第二门课最高分数的信息"<<endl;cout<<"3:第三门课最高分数的信息"<<endl;cout<<"4:总分最高分数的信息"<<endl;cin>>z;switch(z){ case 1:top_print(stu) ;break;case 2:top1_print(stu) ;break;case 3:top2_print(stu) ;break;default:top3_print(stu) ;break;} ...

输入3个学生4门课的成绩,分别用函数实现以下功能:(1)计算每个学生的平均...
void kcaver(float (*p)[4],int n)\/\/每门课程的平均分 { int i,j;float course[n];course[0]=0;course[1]=0;course[2]=0;course[3]=0;for(j=0;j<n;j++){ for(i=0;i<3;i++)course[j]+=*(*(p+i)+j);printf("course[%d]=%5.2f\\t",j,course[j]\/3);} } void...

...输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的...
首先,函数`printScore`接收一个二维数组`score[4][3]`,它存储了3名学生的4门课程成绩。函数通过嵌套循环遍历这个数组,外部循环用于控制学生,内部循环用于处理每门课程的成绩。在输出时,它以学生编号为依据,逐门课程显示成绩,并在每三门课程后换行,以清晰展示每个学生的成绩。`printf()`函数在此...

...用函数实现以下功能,计算每个学生的平均分。
sum+=arry[i];ave=sum\/4;return(ave);}

C语言 很急 求大神帮助 计算三个学生四门课的平均成绩
求解三个学生四门课程的平均成绩,通过C语言实现。编写代码如下:1. 首先定义数组`score`用于存储每个学生四门课程的成绩,`add`数组用于计算每个学生四门课程的总成绩,`k`数组用于存储每门课程的成绩。2. 使用嵌套循环结构,外部循环`for(i=0;i<M; i++)`用于遍历三个学生,内部循环`for(j=0; ...

输入5个学生4门课程的成绩,求(1)每个学生的总分(2)每门课程的平均分(3...
从键盘输入38个学生的基本数据,包括学号,姓名,性别以及3门课程的单科成绩。(1) 计算每个学生3门课程的总分和平均成绩;(2) 找出每门课程中成绩最好和成绩最差的学生,并输出这些学生的基本数据;(3) 3门课程总成绩按由高分到低分的顺序排序,输出排序后的学生的基本数据。\/ \/ VC++ 6.0测试...

...n个学生m门功课的成绩(2)每个学生的平均分;(3)每
示阿架

...从键盘输入学生的成绩统计每门课的最高分并输出最高分及学生号_百度...
void main(){ struct student students[3];int i,j,max;printf("请依次输入学号,及3门科目的成绩!\\n);for(i=0;i<3;i++){ printf("第%d个学生,学号:\\n",i);scanf("%s",students[i].student_id);printf("输入成绩成绩\\n:);for(j=0;j<4;j++){ printf("第%d门课的成绩:",j...

...计算并输出每科成绩的最高分和每个学生的平均分
double all = 0.0;printf ("请输入%c的三门成绩:\\n", 'A'+i);for (j = 0; j < 3; j++) { scanf ("%lf", &mark[i][j]);high[j] = high[j] < mark[i][j] ? mark[i][j] : high[j];all += mark[i][j];} printf ("%c同学的平均成绩是:%.2lf\\n", 'A...

输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每...
Dim Max As Single '最高分 Dim sMax As Single '学分平均分最高 Dim cMax As Single '课程平均分最高 '先读入学生成绩 score(M,N),代码略 Dim i As Integer, j As Integer Max = 0 For i = 1 To M For j = 1 To N s(i) = s(i) + score(i, j)c(j) = c...

相似回答