现在有如下数组: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-09-03 08:28:04 浏览: 87
重新排列数组1
### 回答1:
可以使用以下代码实现:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[sizeof(oldArr)/sizeof(int)]; // 新数组的大小为原数组的大小
int j = 0; // 新数组的下标
for (int i = 0; i < sizeof(oldArr)/sizeof(int); i++) {
if (oldArr[i] != 0) { // 如果不为0,则存入新数组
newArr[j] = oldArr[i];
j++;
}
}
// 打印新数组
for (int i = 0; i < j; i++) {
cout << newArr[i] << " ";
}
输出结果为:1 3 4 5 6 6 5 4 7 6 7 5
### 回答2:
可以使用以下代码实现对数组进行处理:
```java
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[count]; // 新建新数组
int newIndex = 0; // 新数组索引
for(int i=0; i<oldArr.length; i++){
if(oldArr[i] != 0){
newArr[newIndex] = oldArr[i];
newIndex++;
}
}
// 打印新数组
for(int i=0; i<newArr.length; i++){
System.out.print(newArr[i] + " ");
}
```
输出为:
1 3 4 5 6 6 5 4 7 6 7 5
### 回答3:
可以通过遍历原始数组,将不为0的值存入一个新的数组中,即可实现将原始数组中值为0的项去掉的要求。
具体实现步骤如下:
1. 声明一个新数组newArr,长度为原始数组中不为0的数量;
2. 使用一个计数器count,用来记录不为0的值在新数组中的位置;
3. 遍历原始数组oldArr,对于每一个元素:
- 如果不等于0,则将其存入新数组newArr的第count个位置,并将count加1;
- 如果等于0,则跳过当前循环,不对新数组进行操作;
4. 得到新数组newArr,其中存储了原始数组中不为0的项;
5. 最后,输出新数组newArr。
以下是具体的实现代码:
```java
public class Main {
public static void main(String[] args) {
int oldArr[] = {1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5};
int count = 0;
// 计算不为0的项的数量
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
count++;
}
}
int newArr[] = new int[count];
count = 0;
// 将不为0的值存入新数组
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
newArr[count] = oldArr[i];
count++;
}
}
// 输出新数组
for (int i = 0; i < newArr.length; i++) {
System.out.print(newArr[i] + " ");
}
}
}
```
输出结果为:1 3 4 5 6 6 5 4 7 6 7 5
阅读全文