在C ++中反转数组时,为什么在输入和输出之间会得到一个“随机”数字?

时间:2018-12-23 04:12:51

标签: c++ arrays

到目前为止,我一直在学习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 /一些数字 Result

2 个答案:

答案 0 :(得分:1)

在以下行中:

private void OnDragStarting( UIElement sender, DragStartingEventArgs args ) { // Create a new bitmap image object var dragImage = new BitmapImage(); // Assign the drag image to the new bitmap image object dragImage = args.DragUI. ???? }

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

改为使用var

答案 1 :(得分:1)

在第二个for循环中,您没有分配,只有一条语句。由于这个原因,您从数组中包含无效数字的位置开始打印,您可能还希望读取第二个循环

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

现在,有更多的元素编写方式,但这是您的代码中需要的修复程序。