c++ - 如何将输入值放入数组c ++中?
问题描述
C++ 新手。我想将输入值scoreCurrent
放入不同的数组中,具体取决于它们是高于平均值还是低于平均值。我尝试从不同的网站和 youtube 寻找解决方案,但到目前为止都没有。我该怎么做呢?
如果我的整个代码一团糟,我深表歉意,并提前感谢您。
#include <iostream>
using namespace std;
int main()
{
// student count
int students, upperLimit;
cout<<"Enter no. of students: ";
cin>>students;
// upper limit
do
{
cout<<"Enter the upper limit: ";
cin>>upperLimit;
if(upperLimit<5)
{
cout<<"Invalid upper limit."<<endl;
continue;
}
break;
}while(true);
// student scores
int scoreCurrent, scoreTotal;
float average=0;
int belowAve(students), aboveAve(students);
for(int index=1; index<=students; index++)
{
cout<<"Enter score for student no. "<<index<<": ";
cin>>scoreCurrent; // take this and place it into an array
// condition invalid
if(scoreCurrent>upperLimit || scoreCurrent<0)
{
int current=index-1;
cout<<"Invalid score."<<endl;
index=current;
scoreCurrent=0;
}
scoreTotal+=scoreCurrent;
average=(float) scoreTotal/(float) students;
if(scoreCurrent>average)
{
// scoreCurrent values are placed in belowAve array;
}
if(scoreCurrent>average)
{
// scoreCurrent values are placed in aboveAve array;
}
}
// display
cout<<"Average: "<<average<<endl;
cout<<"Scores above or equal average: "<<belowAve<<endl;
cout<<"\nScores below average: "<<aboveAve<<endl;
return 0;
}
解决方案
我的猜测是这scorecurrent
是一个数组(以及index
中的偏移量scorecurrent
)?如果你认为这会奏效
std::cin >> scoreCurrent;
那么问题是:
scorecurrent
输入将放置在哪里(您不使用index
)?- (如果你想给所有索引打分)输入什么时候停止?
除了向量更好的论点(它是,因为你不需要指定它的大小并且可以push_back()
)我认为这个解决方案是解决你的问题的一种非常优雅的方式。
它使用 lambda 函数来迭代(固定大小)数组的所有元素。还有另一种更传统的解决方案,其中>>
运算符std::cin
被重载用于数组类型的参数。
推荐阅读
- vba - Workbook_Open 下标超出范围
- c# - 如何使用 XUnit 在 ASP.NET Core 中使用依赖注入测试控制器?
- php - 当用户点击“搜索”按钮时,在表格中显示搜索结果
- mysql - 执行存储在列中的表达式
- highcharts - 样条更新每秒出现和消失
- terminal - 使用 zsh 时的“dev”文件夹是什么
- javascript - angular 2 table 折叠在排序时无法正常工作
- go - 修复 Go 中的导入周期
- google-cloud-platform - Google Cloud Platform IAM,我没有收到会员邀请邮件
- arm - ARM 中的 VMNNM 指令