This repository has been archived by the owner on May 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFinal3Prog2.CPP
96 lines (82 loc) · 2.33 KB
/
Final3Prog2.CPP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*题目:有六位学生,学号从1到6,语文、数学两门课的成绩分别存放在一维数组chinese、math中。
要求:
1.编写排序函数sort,在主函数中调用此函数按成绩高低排名;
2.编写求平均分的函数average,在主函数中调用此函数求课程的平均分;
3.编写函数lessAverage,在主函数中调用此函数求低于平均分的人数。
(注:同一科目,学生成绩不相同)
输出结果见样张.JPG
-------------------------------------------------------*/
#include <iostream>
using namespace std;
/**********Program**********/
void sort(double *score,int *id,int n)
{
int i,j,max,tempId;
double temp;
for(i=0;i<n-1;i++)
{
max=i;
for(j=i+1;j<n;j++)
if(score[j]>score[max])
max=j;
temp=score[i];
score[i]=score[max];
score[max]=temp;
tempId=id[i];
id[i]=id[max];
id[max]=tempId;
}
return;
}
double average(double *score,int n)
{
double avg=0;
for(int i=0;i<n;i++)avg+=score[i];
return avg/n;
}
int lessAverage(double*score,int n)
{
int i,count=0;
for(i=0;i<n;i++)
if(score[i]<average(score,n))count++;
return count;
}
/********** End **********/
int main()
{
double chinese[6],math[6]; //语文成绩数组、数学成绩数组
int i;
int stuId[6]={1,2,3,4,5,6};//学号数组
//输入对应的成绩
for(i=0;i<6;i++)
{
cout<<"请输入成绩(语文、数学):";
cin>>chinese[i]>>math[i];
}
//以语文成绩为关键字,对语文成绩数组&学号数组排序
sort(chinese,stuId,6);
cout<<"语文课名次如下:"<<endl;
cout<<"名次"<<'\t'<<"学号"<<'\t'<<"语文成绩"<<endl;
for(i=0;i<6;i++)
{
cout<<i+1<<'\t';
cout<<stuId[i]<<'\t'<<chinese[i]<<endl;
}
//重置学号数组
for(i=0;i<6;i++) stuId[i]=i+1;
//以数学成绩为关键字,对数学成绩数组&学号数组排序
sort(math,stuId,6);
cout<<"数学课名次如下:"<<endl;
cout<<"名次"<<'\t'<<"学号"<<'\t'<<"数学成绩"<<endl;
for(i=0;i<6;i++)
{
cout<<i+1<<'\t';
cout<<stuId[i]<<'\t'<<math[i]<<endl;
}
//调用average函数计算各科平均分,调用lessAverage统计各科低于平均分的人数
cout<<"语文课平均成绩为:"<<average(chinese,6)<<endl;
cout<<"语文课低于平均分的人数为"<<lessAverage(chinese,6)<<"人"<<endl;
cout<<"数学课平均成绩为"<<average(math,6)<<endl;
cout<<"数学课低于平均分的人数为"<<lessAverage(math,6)<<"人"<<endl;
return 0;
}