c语言数组跳过一个数赋值
时间: 2023-09-17 15:02:09 浏览: 203
C语言数组赋值一例
C语言中,数组跳过一个数赋值的方法有很多种。下面我给出两种常见的方法示例:
方法一:使用一个临时数组
首先,我们创建一个临时数组temp,长度比原数组arr小1。然后,使用一个循环遍历原数组arr中的元素,判断当前元素是否为要跳过的数。如果是,则跳过该元素;如果不是,则将该元素赋值给temp数组中的对应位置。最后,将temp数组的值赋给原数组arr。
示例代码如下所示:
```c
#include <stdio.h>
void skipNumber(int arr[], int size, int skip) {
int temp[size - 1];
int tempIndex = 0;
for (int i = 0; i < size; i++) {
if (arr[i] == skip) {
continue;
}
temp[tempIndex] = arr[i];
tempIndex++;
}
for (int i = 0; i < size - 1; i++) {
arr[i] = temp[i];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int skip = 3;
skipNumber(arr, size, skip);
for (int i = 0; i < size - 1; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码的输出结果为:1 2 4 5,表示跳过了值为3的元素。
方法二:原地改变数组
这种方法不使用额外的临时数组,而是直接在原数组上进行移动元素的操作。我们遍历原数组arr中的元素,对于每个元素,如果不是要跳过的数,则将该元素移动到数组的前面。最后,将原数组arr的长度减1。
示例代码如下所示:
```c
#include <stdio.h>
void skipNumber(int arr[], int size, int skip) {
int count = 0;
for (int i = 0; i < size; i++) {
if (arr[i] != skip) {
arr[count] = arr[i];
count++;
}
}
size--;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int skip = 3;
skipNumber(arr, size, skip);
for (int i = 0; i < size - 1; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码的输出结果也为:1 2 4 5,表示跳过了值为3的元素。
以上就是使用C语言进行数组跳过一个数赋值的两种常见方法,希望能对你有所帮助。
阅读全文