我有一个值数组
尝试:
我正在尝试循环遍历数组中的每个值,并检查该项是否不等于零。如果此条件为真,则我试图使用原始数组值填充新数组。
输出结果并不是我期望的
x = {0,0,1,2,3,0,0,7,8}
,我想使用C语言删除零条目。尝试:
我正在尝试循环遍历数组中的每个值,并检查该项是否不等于零。如果此条件为真,则我试图使用原始数组值填充新数组。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int x[] = { 0, 0, 1, 2, 3, 0, 0, 7, 8 };
int i;
int x_upd[100];
for (i = 0; i < 9; i++) {
if (x[i] != 0) {
x_upd[i] = x[i]; // if true, populate new array with value
}
}
for (i = 0; i < 9; i++) {
printf(" Peak updated %d\t", x_upd[i]); //
}
return 0;
}
输出结果并不是我期望的
{1,2,3,7,8}
,而是一些垃圾值代替原来为零的位置。请问我做错了什么?需要加上一个else语句吗?
int i, j = 0;
...x_upd[j++] = x[i];
...for(i=0;i<9;i++)
-->for(i = 0; i < j; i++)
- BLUEPIXYx_upd
元素会打印什么?您还需要跟踪新的大小。 - Some programmer dudex_upd[]
部分中有什么值? - chux - Reinstate Monica