c ++数组不会显示正确的值

时间:2014-04-26 17:14:18

标签: c++ arrays

好吧,所以我有一个问题,这个简单的程序,我没有什么故障。

我必须创建一个程序,它从一个数组中获取所有正元素并将它们放在一个新数组中。第一个数组中的正元素确实显示在第二个数组中,但所有元素都显示为-858993460。我不知道是什么引起了这个问题,但我认为一切都在理论上检查出来,因为反击决定了。

下面是代码:

#include "StdAfx.h"
#include <stdio.h>
void main() {
    int i, n, j = 0, a[25], b[25];
    printf("Input the number of elements: ");
    scanf("%d", &n);
    printf("Imput the elements\n");
    for (i = 0; i < n; i++){
        printf("%d-i element: ", i); scanf("%d", &a[i]);
    }
    for (i = 0; i<n; i++) {
        if (a[i]>0) {
            a[i] = b[j];
            j = j + 1;
        }
    }
    printf("The array with positive elements:\n");
    for (i = 0; i < j; i++) {
        printf("%d\n", b[i]);
    }
}

2 个答案:

答案 0 :(得分:2)

那是因为您从未将值分配给数组b

更改

a[i]=b[j];

b[j]=a[i]; // assign values here

答案 1 :(得分:0)

在此之前,数组b尚未设置有效值:

 for (i=0; i<n; i++) {
         if (a[i]>0) {a[i]=b[j];
         j=j+1;
 }

可能会为a个广告位分配垃圾。