设计一个函数统计数组中奇数个数,c语言
时间: 2024-04-30 22:20:07 浏览: 15
可以定义一个函数,接收一个整型数组和数组长度作为参数,返回数组中奇数的个数。
代码如下:
```c
int countOdd(int arr[], int len) {
int count = 0;
for (int i = 0; i < len; i++) {
if (arr[i] % 2 != 0) {
count++;
}
}
return count;
}
```
在函数中,我们遍历数组中的每一个元素,如果该元素是奇数,我们就将计数器 count 加 1。最终,函数返回计数器的值,即为数组中奇数的个数。
相关问题
用汇编语言 编写一个统计数组中奇数偶数的个数的代码
您好!以下是用汇编语言编写统计数组中奇数偶数个数的代码:
```
section .data
array db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
oddCount db 0
evenCount db 0
section .text
global _start
_start:
mov ecx, 10 ; 数组长度
mov esi, array ; 数组首地址
xor ebx, ebx ; 偶数个数清零
xor edx, edx ; 奇数个数清零
loopStart:
mov al, [esi] ; 取出数组元素
inc esi ; 地址偏移,指向下一个数组元素
test al, 1 ; 判断是否为奇数
jz even ; 如果为偶数,跳转到even标签
inc edx ; 奇数个数加1
jmp checkEnd ; 跳过even标签
even:
inc ebx ; 偶数个数加1
checkEnd:
loop loopStart ; 循环判断下一个元素
mov [oddCount], edx ; 保存奇数个数
mov [evenCount], ebx ; 保存偶数个数
; 输出结果
mov eax, 4 ; 4号系统调用:写标准输出
mov ebx, 1 ; 标准输出文件描述符
mov ecx, oddCount ; 奇数个数
mov edx, 1 ; 输出长度
int 0x80 ; 系统调用
mov eax, 4 ; 4号系统调用:写标准输出
mov ebx, 1 ; 标准输出文件描述符
mov ecx, evenCount ; 偶数个数
mov edx, 1 ; 输出长度
int 0x80 ; 系统调用
; 退出程序
mov eax, 1 ; 1号系统调用:退出程序
xor ebx, ebx ; 返回值为0
int 0x80 ; 系统调用
```
如果您有其他问题,可以直接问我哦~
通过指针实现输出一个一维数组中奇数位和偶数位上的元素
可以通过指针实现输出一个一维数组中奇数位和偶数位上的元素。具体实现方法如下:
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 ;
}
```