设计一个函数统计数组中奇数个数,c语言
时间: 2024-04-30 17:20:07 浏览: 162
可以定义一个函数,接收一个整型数组和数组长度作为参数,返回数组中奇数的个数。
代码如下:
```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 ; 系统调用
```
如果您有其他问题,可以直接问我哦~
C语言把数组中奇数下标数值提取出来
在C语言中,如果你想从数组中提取所有奇数索引对应的元素,可以遍历整个数组并检查每个索引是否为奇数。这里有一个简单的示例:
```c
#include <stdio.h>
void extract_odd_numbers(int arr[], int size) {
for (int i = 0; i < size; i++) { // 遍历数组
if (i % 2 != 0) { // 检查索引是否为奇数
printf("%d ", arr[i]); // 打印奇数索引的值
}
}
}
int main() {
int my_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 示例数组
int array_size = sizeof(my_array) / sizeof(my_array[0]);
extract_odd_numbers(my_array, array_size);
return 0;
}
```
在这个例子中,`extract_odd_numbers` 函数接受一个整型数组和其大小作为输入,然后只打印出那些索引为奇数(即 `i % 2` 的结果非零)的元素。
阅读全文