在不知道数组大小的情况下,数组中的最大/最小元素
C++ max/min element in an array without knowing array size
我被分配了一个任务,它没什么特别的,但我确实在这里碰壁了…
得到算术平均值后,我需要比较它们并输出最高和最低的值。
x是学生号,vid[]是算术平均值。
例如:学生号x有算术平均vid[i]
,任务要求我输出哪个学生的平均值最高,哪个学生的平均值最低。
最糟糕的是,我不能使用max()和min()之类的东西,因为我不知道总共有多少学生。另外,它们都是具有相同变量名称vid[]的数组。
任何帮助都将不胜感激=)
int main()
{
int mokSK=0, p1[25], p2[25], p3[25], x[25], vid[25], iv=0;
ifstream inFile("inFile.in");
ofstream outFile("outFile.out");
inFile >> mokSK;
for(int i=0;i<mokSK;i++)
{
inFile >> x[i] >> p1[i] >> p2[i] >> p3[i];
vid[i]=(p1[i]+p2[i]+p3[i])/3;
outFile<< x[i] <<" " << vid[i] << endl;
}
return 0;
}
如果你想让0(1)访问最大和最小评分的学生;从阅读开始,更新你的最高和最低分数的学生在每个阅读通过。
更清楚:从执行开始跟踪最小和最大评分的学生,并在需要时更新每个学生数据阅读通过的最大和最小评分的学生。
int main()
{
int mokSK=0, p1[25], p2[25], p3[25],x[25],vid[25],iv=0;
int minmean = INT_MAX; int minstud= 0;// initialize minmean and max mean with first mean
int maxmean = 0; int maxstud= 0;
ifstream inFile("inFile.in");
ofstream outFile("outFile.out");
inFile >> mokSK;
for(int i=0;i<mokSK;i++)
{
inFile >> x[i] >> p1[i] >> p2[i] >> p3[i];
vid[i]=(p1[i]+p2[i]+p3[i])/3;
if(vid[i]>maxmean){maxmean = vid[i]; maxstud = i;}
if(vid[i]<minmean){minmean = vid[i]; minstud = i;}
// not handled if multple students have maxmean or minmean
outFile<< x[i] <<" " << vid[i] << endl;
}
outFile << "Max mean: " << maxmean << ", student id: " << maxstud << endl;
outFile << "Min mean: " << minmean << ", student id: " << minstud << endl;
return 0;
}
相关文章:
- 数组元素打印的递归方法
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 为什么使用数组元素查找最大数字的程序不起作用?
- 数组元素更改值?
- 如何访问宏中定义的数组元素
- 将数组元素递增 1
- C++函数,它将数组、谓词和运算符作为参数,并将运算符应用于满足谓词的数组元素
- 存储指向动态数组元素的指针
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 在 std::map 中插入数组元素
- 使用指针访问数组元素时出现意外结果
- c++ 使用动态分配运算符反向数组元素
- 为什么在 c++ 中分配 char 数组元素时,分配的字符会被销毁?
- 缺少数组元素问题
- 如何在类中制作 2D 数组元素,然后在其构造函数中指定其维度?
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 删除在结构 c++ 中声明的数组元素
- Getter 和 Setter 用于类 C++ 中的数组元素
- 尝试递归获取数组元素的总和
- 使用SWIG将numpy数组元素(int)传递给c++int