如果我想让第二个数组只传入第一个数组中非零的数字你
时间: 2023-11-08 09:05:39 浏览: 74
你可以在循环中使用if语句判断第一个数组的元素是否为零,如果不是零,则将其赋值给第二个数组。示例代码如下:
```c
#include <stdio.h>
int main() {
int arr1[5] = {1, 0, 3, 0, 5};
int arr2[5];
int i, j = 0;
for (i = 0; i < 5; i++) {
if (arr1[i] != 0) {
arr2[j] = arr1[i];
j++;
}
}
printf("arr1: ");
for (i = 0; i < 5; i++) {
printf("%d ", arr1[i]);
}
printf("\narr2: ");
for (i = 0; i < j; i++) {
printf("%d ", arr2[i]);
}
return 0;
}
```
运行结果:
```
arr1: 1 0 3 0 5
arr2: 1 3 5
```
以上代码中,定义了两个数组arr1和arr2,其中arr1数组中有零和非零元素。在循环中,如果arr1数组的元素不为零,则将其赋值给arr2数组,并且维护一个下标变量j来记录arr2数组中的元素个数。最后打印输出arr1和arr2数组的值,可以看到arr2数组只包含arr1数组中非零的元素。
值得注意的是,如果arr1数组中非零元素的个数大于arr2数组的长度,则只会将arr2数组中的前几个位置赋值为非零元素。如果需要确保arr2数组能够存储所有非零元素,可以在循环前先计算arr1数组中非零元素的个数,并根据个数动态地分配arr2数组的空间。
阅读全文