所以这是实际问题
任何人都可以告诉我如何从文件中读取相应的数据,以及如何将其存储在变量中(不使用数组),代码也应该是通用的,如果系列的数量会增加或减少..代码不会受到影响...我只是无法理解我如何在变量中存储sata以及如何...请帮助.. :(
问题
文件包含击球手的信息。信息不是系列的 由击球手打球。每个系列赛都没有比赛得分 每个比赛由击球手。你必须阅读数据(不使用 任何阵列)并找到所有比赛中的平均得分和最高得分 一系列的。最后找到所有的总体平均得分和最高得分 匹配。
输入:
从文件“cricket.txt”中读取数据。第一行不包含季节/ 玩家系列播放。下一对线包含匹配 击球手在接下来的比赛中由击球手进行比赛 一个赛季的不同比赛。参见样本“cricket.txt”
5
6
93 75 41 40 90 19
5
45 86 30 60 29
3
47 90 33
4
22 2 92 5
5
88 67 96 91 90
前5名表明球员已经打了5个赛季/系列赛
接下来的6场秀第一场比赛的球员已经打了6场比赛
下一行在6场比赛中得分为
接下来的第5场秀第二场比赛的球员已经打了5场比赛
下一行有5场比赛的得分
所以在最后一行第5行显示球员在第5场比赛中打了5场比赛 系列
最后一行在最后一个系列的5场比赛中得分很高
答案 0 :(得分:2)
您正在寻找阵列。
int a[10];
// Loop that assigns all elements in array a to 0
for (int i = 0; i < 10; i++)
{
a[i] = 0;
}
// Array b will have all of it's members initialized to 0
int b[10]{};
// You can also assign different values to different elements of the array
b[0] = 6;
b[8] = 2;
// You can then use the array elements in operations
int c = b[0] * b[8];
如果你想要没有编译时定义大小的数组结构,那么使用std :: vector。
// An empty vector of ints
std::vector<int> d;
// A simple int
int e = 5;
// Push 2 values to the end of the vector
d.push_back(2);
d.push_back(e);
// Use the members for operations
int f = d.at(0) * d.at(1);
答案 1 :(得分:1)
由于您现在已经描述了您尝试解决的问题,而不仅仅是您提出的解决方案的问题:
您无需创建变量名称或使用数组来计算平均值和最大值。
以下是如何计算用户输入数字的平均值的示例:
float sum = 0;
int elements = 0;
float input = 0;
while (cin >> input)
{
sum += input;
elements += 1;
}
std::cout << "Average: " << sum / elements << std::endl;
这很容易扩展到目前为止跟踪最大值。
要扩展到多个系列的平均值和最大值,请在“周围”添加另一个循环。