好吧,所以我有一个问题,这个简单的程序,我没有什么故障。
我必须创建一个程序,它从一个数组中获取所有正元素并将它们放在一个新数组中。第一个数组中的正元素确实显示在第二个数组中,但所有元素都显示为-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]);
}
}
答案 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
个广告位分配垃圾。