结构在函数C ++中的使用

时间:2014-10-01 06:15:51

标签: c++ data-structures

我想创建一个返回结构的函数,然后为该函数运行一个循环。这个想法基本上是计算一组n个数字的最大总和,起点和终点(在这种情况下为1000),这个在文本文件中为10行

struct triple
{
    float Max;
    int sp;
    int ep;
};

triple Max_line(string linename, int n)
{
    int k, i, stp, enp, j;
    triple Result;
    float Maxi;
    float T[n];
    string s;
    stringstream ss(linename);
    j = 0;
    Maxi = 0;
    stp = 0;
    enp = 0;
    while (getline(ss, s, ',')and k < n)
    {
        T[j] = atof(s.c_str());
        j++;
    }
    for (i = 0; i < n - 1; i++)
    {
        int k;
        float S;
        S = T[i];
        k = i;
        while (k < n - 1)
        {
            S = S + T[k + 1];
            if (S > Maxi)
            {
                Maxi = S;
                stp = i + 1;
                enp = k + 2;
            }
            k++;
        }
    }


    Result = { Maxi, stp, enp }
    return Result;
}

int main(int argc, char *argv[]) {

    int i, j;
    triple fin;
    fstream myfile("1000.txt"); //extract data from a file containing 10 lines each has 1000 different numbers
    string a, b;
    getline(myfile, a); //skip the first line 
    for (i = 0; i < 10; i++)
    {
        getline(myfile, b);
        fin = Max_line(b, 1000);
        cout << fin.Max << ";" << fin.sp << ";" << fin.ep << endl;

    }
    return 0;
}

当我在Max_line函数中打印结果时,它给了我正确的值,我不明白它为什么不在for循环中工作。 有人可以帮帮我吗?

0 个答案:

没有答案