c ++只有第一个答案行正确

时间:2013-01-10 13:53:40

标签: c++

我的程序有问题,打印正确只有第一行答案是我的.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;

    }
}

2 个答案:

答案 0 :(得分:3)

我怀疑在:

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

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

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

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

答案 1 :(得分: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;
    }
}