在 c++ 中反转数组时,为什么在输入和输出之间得到一个"random"数字?

When reversing an array in c++, why do i get a "random" number in between an input and output?

本文关键字:一个 数字 random 输出 c++ 数组 输入 为什么 之间      更新时间:2023-10-16

到目前为止,我一直在学习C,现在我想尝试C++。从一些简单的任务开始。但是我似乎找不到答案,为什么有一个数字要么是0,要么是488834......打印出来。

我尝试使用

    for(n-1; n>=0; n--){
    cout << a[n] << endl;
  }
int main(){
  int var = 0;
  int a[100],n;
  cin >> n;
  for(int i=0; i<n; i++){
    cin >> a[i];
    var++;
  }
  for(var-1; var>=0; var--){
    cout << a[var] << endl;
  }

一切正常,除了输出中间的 0/一些数字结果

在以下行中:

for(var-1; var>=0; var--){

var-1实际上并没有修改var的值。因此,var可以保留其原始值,这意味着您最终打印的第一个值是原始序列结束后的值。

请改用var = var - 1

在你的第二个 for 循环中,你没有赋值,只有一个语句。因此,您从包含无效数字的数组位置开始打印,您可能还希望读取第二个循环

for(var = var-1; var>=0; var--){
   cout << a[var] << endl;
}

现在,有更多的元素方法来编写它,但这是代码中需要的修复。