0

我的程序有问题,它只打印正确的第一行答案是我的 .txt 文件,第一个数字 (3) 是商店编号,第二个数字 (5) 是产品编号,其他行是产品价格

3 5
1.27 2.92 3.45 1.09 0.89
1.08 2.25 3.75 1.12 0.69
0.98 2.48 3.62 1.10 0.72

这是我的 results.txt 文件,其中是每一行的所有结果

 9.62
 8.89
 8.90

我的程序代码:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    double dienos, results;
    int shops;

    ifstream fin ("duomenys1.txt");
    fin >> shops;

    for( int shop = 1; shop <= 3; shop++ ) {
        results = 0;
        fin >> dienos;

        for ( int pricelist = 1; pricelist <= 5; pricelist++ ) {
            double price;
            fin >> price;
            results += price;

        }
        cout << results << endl;

    }
}
4

2 回答 2

3

我怀疑在:

ifstream fin ("duomenys1.txt");
    fin >> shops;

    for( int shop = 1; shop <= 3; shop++ ) {
        results = 0;
        fin >> dienos;

fin >> dienos应该在你的循环之外。

此外,两个循环都是硬编码的,而不是使用读取的值。

于 2013-01-10T13:58:05.113 回答
0

你可以试试这个代码:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    double dienos, results;
    int shops;

    ifstream fin("duomenys1.txt");
    fin >> shops;
    fin >> dienos;

    for (int shop = 1; shop <= shops; shop++)
    {
        results = 0;
        for (int pricelist = 1; pricelist <= dienos; pricelist++)
        {
            double price;
            fin >> price;
            results += price;
        }
        cout << results << endl;
    }
}
于 2013-01-10T14:07:41.443 回答