数组的第二个整数

时间:2012-06-15 12:54:27

标签: c++

这是一个非常简单的程序,我在这里写,但遇到了问题。 好吧,程序从文件中填充数组[2000],然后它应该TYPE(cout)数组[i],它不等于数组的第二个成员。我不知道如何指向程序中数组的第二个成员。这是一个程序:

#include <iostream>
#include <fstream>

using namespace std;
const int N=2000;

int main() {
    int* array;
    array = new int[N];

    for (int i=0; i<N; i++){
        ifstream ifs("reals.txt");
        ifs>>array[i];
    }

    for (int i=0; i<N; i++){
        if(array[i] != array[1])   /// is this right? is array[1] second member? 
            cout<<array[i]<<'\t';
        if((i+1)%13) cout<<endl;
    }
    system("pause");
    return 0;
}

如果我想从数组的最后一个元素检查第二个元素呢?

P.S。对不起我的英语不好。如果有任何你无法理解的东西,请随时发表评论,我会尽力解释。提前谢谢。

3 个答案:

答案 0 :(得分:5)

array[1] 的第二个成员。但问题是你每次都在循环中重新打开文件:

for (int i=0; i<N; i++){
    ifstream ifs("reals.txt");
    ifs>>array[i];
}

你需要在循环之前打开文件:

ifstream ifs("reals.txt");
for (int i=0; i<N; i++){
    ifs>>array[i];
}

答案 1 :(得分:1)

for (int i=0; i<N; i++){
    ifstream ifs("reals.txt");
    ifs>>array[i];
}

应该是

ifstream ifs("reals.txt");
for (int i=0; i<N; i++){        
    ifs>>array[i];
}
  

if(array [i]!= array [1])///这是对的吗?是数组[1]秒   构件?

答案是肯定的。

  

array = new int [N];

别忘了

delete[] array;

如果要访问prelast元素,可以在阵列的标准库中替换:

#include <vector>

int main(){
  std::vector<int> array(1000);
  array[998]= 42;
  int prelast= *(array.end()- 2); // end() is an iterator to one-past the last element
}

答案 2 :(得分:0)

是的,这是正确的,因为数组基于0。例如,对于5 elements数组,最后一个元素将是index 4 or array[4];