为什么将所有数据值初始化为0?

时间:2015-01-06 17:29:23

标签: c++

#include <iostream>
#include <algorithm>

using namespace std;

class myclass
{
    public: 
    int start;
    int end;
};

bool comp (const myclass &a,const myclass &b )
{   
    return a.start < b.start;
}
int main (void)
{
    int n,temp,t,l,r,i,j;
    cin>>t; 
    while ( t != 0 )
    {
        cin>>n;
        temp = n;
        i = 0;
        myclass arr[100000];
        while ( temp != 0 )
        {       
            cin>>l>>r;
            arr[i].start = l;
            arr[i].end = r;
            i++;
            temp--;
        }

        for ( j = 0; j < i; j++ )
            cout<<arr[i].start<<" "<<arr[i].end<<"\n";
        cout<<"\n";
        sort(arr,arr+i,comp);
        for ( j = 0; j < i; j++ )
            cout<<arr[i].start<<" "<<arr[i].end<<"\n";
    t--;
    }
    return 0;
}

我已经创建了一个类,我正在尝试扫描myclass数组中的值。但是,当我打印输入的值时,它会显示全0。 在输入值后,我必须对值进行排序,但问题是输入在我所创建的自定义类的数组中没有正确输入。我在这做错了什么?

1 个答案:

答案 0 :(得分:5)

在这些循环中将[i]更改为[j]

for ( j = 0; j < i; j++ )
    cout<<arr[j].start<<" "<<arr[j].end<<"\n";