通过指针实现输出一个一维数组中奇数位和偶数位上的元素
时间: 2023-04-23 13:06:54 浏览: 442
可以通过指针实现输出一个一维数组中奇数位和偶数位上的元素。具体实现方法如下:
1. 定义一个一维数组,并初始化。
2. 定义两个指针,一个指向数组的第一个元素,另一个指向数组的第二个元素。
3. 通过循环遍历数组,每次输出指针所指向的元素,并将指针向后移动两个位置。
4. 分别输出奇数位和偶数位上的元素。
示例代码如下:
```c
#include <stdio.h>
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *p1 = arr; // 指向第一个元素
int *p2 = arr + 1; // 指向第二个元素
printf("奇数位上的元素:");
while (p1 < arr + 10) {
printf("%d ", *p1);
p1 += 2; // 指针向后移动两个位置
}
printf("\n");
printf("偶数位上的元素:");
while (p2 < arr + 10) {
printf("%d ", *p2);
p2 += 2; // 指针向后移动两个位置
}
printf("\n");
return ;
}
```
相关问题
C语言通过指针实现输出一个任意一维数组中奇数位和偶数位上的元素
在C语言中,通过指针可以方便地遍历数组并区分奇数位置(索引为奇数)和偶数位置(索引为偶数)的元素。下面是一个简单的示例,假设有一个整型的一维数组`arr[]`,我们首先声明一个指针`p`指向数组的第一个元素,然后可以采用递增指针的方式实现:
```c
#include <stdio.h>
// 函数定义,接收指针作为参数,并遍历数组
void separate_elements(int* arr, int length) {
if (arr == NULL || length <= 0) {
printf("数组无效!\n");
return;
}
// 初始化指针
int* p = arr;
// 分别存储奇数位置和偶数位置的元素
int odd_sum = 0, even_sum = 0;
for (int i = 0; i < length; i++) {
// 检查当前索引是否为奇数
if (i % 2 != 0) {
// 输出奇数位置的元素并累加求和
printf("%d ", *p);
odd_sum += *p;
} else {
// 输出偶数位置的元素并累加求和
printf("%d ", *(p + 1));
even_sum += *(p + 1);
}
// 移动指针到下一个位置
p++;
}
printf("\n奇数位置元素之和: %d\n", odd_sum);
printf("偶数位置元素之和: %d\n", even_sum);
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]);
separate_elements(arr, n);
return 0;
}
```
在这个例子中,`separate_elements`函数接受数组`arr`和长度`length`,通过循环遍历每个元素并根据其索引的奇偶性分别处理。运行此程序,它将打印出数组中奇数位置和偶数位置的元素以及它们各自的和。
定义一个整形数组,求出数组中奇数个数和偶数个数
好的,可以使用以下代码来定义整型数组并求出其中奇数和偶数的个数:
```python
# 定义整型数组
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 初始化奇数和偶数个数为0
odd_count = 0
even_count = 0
# 遍历整型数组
for num in arr:
# 判断当前数字是否为奇数
if num % 2 == 1:
odd_count += 1
# 否则,当前数字为偶数
else:
even_count += 1
# 输出奇数和偶数个数
print("奇数个数为:", odd_count)
print("偶数个数为:", even_count)
```
输出结果为:
```
奇数个数为: 5
偶数个数为: 4
```
阅读全文
相关推荐















