现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ,要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} 。
时间: 2023-06-02 20:03:45 浏览: 85
好的,这是一个关于数组操作的问题。下面是根据您的要求所编写的代码示例:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int nonZeroCount = 0;
for(int i = 0; i < sizeof(oldArr) / sizeof(int); i++) {
if(oldArr[i] != 0) {
nonZeroCount++;
}
}
int newArr[nonZeroCount];
int j = 0;
for(int i = 0; i < sizeof(oldArr) / sizeof(int); i++) {
if(oldArr[i] != 0) {
newArr[j] = oldArr[i];
j++;
}
}
// 打印新数组
for(int i = 0; i < sizeof(newArr) / sizeof(int); i++) {
printf("%d ", newArr[i]);
}
运行以上代码将会输出新数组:1 3 4 5 6 6 5 4 7 6 7 5。
相关问题
现在有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
给定一个数组 int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将数组中值为 0 的项去掉,将不为 0 的值存入一个新的数组,生成的新数组为 int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}。可以通过遍历原数组,统计值为 0 的项数,然后给新数组分配内存空间,再遍历原数组将不为 0 的值存入新数组中即可。具体实现可以参考以下代码:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int count = 0;
for(int i=0; i<oldArr.length; i++){
if(oldArr[i] == 0){
count++;
}
}
int[] newArr = new int[oldArr.length - count];
int j = 0;
for(int i=0; i<oldArr.length; i++){
if(oldArr[i] != 0){
newArr[j] = oldArr[i];
j++;
}
}
// 输出新数组
for(int i=0; i<newArr.length; i++){
System.out.print(newArr[i] + " ");
}
现在有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
可以使用ArrayList来实现该功能,先遍历原数组,将不为0的元素添加到ArrayList中,最后将ArrayList转换为数组即可得到新数组。
以下是示例代码:
```
int oldArr[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
list.add(oldArr[i]);
}
}
int[] newArr = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
newArr[i] = list.get(i);
}
```
阅读全文