需要C ++项目的帮助

时间:2016-02-04 19:42:14

标签: c++

所以这是实际问题

任何人都可以告诉我如何从文件中读取相应的数据,以及如何将其存储在变量中(不使用数组),代码也应该是通用的,如果系列的数量会增加或减少..代码不会受到影响...我只是无法理解我如何在变量中存储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场比赛中得分很高

2 个答案:

答案 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;

这很容易扩展到目前为止跟踪最大值。

要扩展到多个系列的平均值和最大值,请在“周围”添加另一个循环。