问题描述
- (C++)关于最小值和平均数的问题
-
#include
using namespace std;int main()
{
int i = 0;
int score[16];
double sum = 0;
double ave = 0;
int min = 0;cout << "请输入第一个学生的4门成绩:" << endl; for (i = 0; i < 4; i++) cin >> score[i]; cout << "请输入第二个学生的4门成绩" << endl; for (i = 4; i < 8; i++) cin >> score[i]; cout << "请输入第三个学生的4门成绩:" << endl; for (i = 8; i < 12; i++) cin >> score[i]; cout << "请输入第四个学生的4门成绩:" << endl; for (i = 12; i < 16; i++) cin >> score[i]; while (1) { if (score[i] < score[i + 1]) min = score[i]; sum += score[i]; i++; if (i == 16) { break; } } ave = sum / 16; cout << "平均分为:" << ave << endl; cout << "最低分为:" << min << endl; return 0;
}
我这里是想分别输入四个人的四门成绩,并且求出平均数和最小值,我该怎么写?
解决方案
追加 一看这样一个例子
#include
using namespace std;
class Student
{
private :
int num[5]; //学号
float course[5][4]; // 成绩
public:
Studnet();
void ScanfInfo();
void PrintInfo();
};
Student::Studnet() //初始化
{
memset(num,0,sizeof(num));
memset(course,0,sizeof(course));
}
void Student::ScanfInfo()
{
for(int j=0;j
{
cout
cin>>num[j];
cout<<"输入四门科目的分数"<
for(int i=0;i
{
cin>>course[j][i];
}
}
}
void Student::PrintInfo()
{
float average = 0;
for(int i=0;i<4;i++)
{
average = 0;
for(int j=0;j<5;j++)
{
average+=course[j][i];
}
cout<<"第"<<i+1<<"科:"<<average/5<<endl;
}
}
int main()
{
Student stu;
stu.ScanfInfo();
stu.PrintInfo();
return 0;
}
你的问题和这个类似,你就可以按我上面说的声明一个函数,然后调用。
解决方案二:
RMQ问题(区间最小值)
解决方案三:
在c++语言中,你可以创建一个类,在类里声明一个函数,这个函数呢就是计算平均值的,如果有需要的话还可以再声明一个函数用来输入数据到内存里,
然后计算平均值的函数参数使用内存中的数据,这样在输入每个人的成绩时调用函数就OK啦!
解决方案四:
while里面的if,你还是加个else看看
解决方案五:
while里面的if,你还是加个else看看