c - 在数组中存储奇数和偶数

标签 c arrays

我们的任务是制作一个程序,该程序仅接受来自用户的十个输入,然后将其排序为偶数或奇数数组。

  1. 接受 10 个输入。
  2. 分离到偶数或奇数数组。
  3. 打印偶数/奇数数组中有多少。
  4. 打印每个数组中的数字。

这是我制作的程序:

#include<stdio.h>

int main(){
int even[10];
int odd[10];
int number;
int numOdd = 0;
int numEven = 0;
int sizeOdd = 0;
int sizeEven = 0;
int count;

printf("Input numbers:\n");
for(count = 0; count < 10; count++){
    scanf("%d", &number);
    if (number %2 == 0){
        while (numEven < 10){
            even[numEven++] = number;
            sizeEven++;
        }
    }
    else {
        while (numOdd < 10){
            odd[numOdd++] = number;
            sizeOdd++;
        }
    }
}

printf("\n\nEven numbers(%d): ", sizeEven);
for(number = 0; number < numEven; number++){
    printf("%d, ", even[number]);
}

printf("\n\nOdd numbers(%d): ", sizeOdd);
for(number = 0; number < numOdd; number++){
    printf("%d, ", odd[number]);
}

system("pause");
return 0;
 }

但我的程序只输出数组中的第一个数字并重复它。比如,如果我输入 1、2、3、4、5、6、7、8、9、10,我会得到:

偶数 (10): 2, 2, 2, 2, 2 奇数 (10): 1, 1, 1, 1, 1

程序中的所有内容/我的逻辑都错了吗?我走在正确的轨道上吗,我只需要稍微调整一下?希望得到帮助!

最佳答案

这可以帮助您: 为什么要在 if 和 else 条件中添加 while 循环:

if (number %2 == 0){
   even[numEven++] = number;

此外,even[numEven++] 本身会增加 numEven 变量的值,无需在下一行再次增加。

关于c - 在数组中存储奇数和偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414610/

相关文章:

c - 难以从 C 中的 .txt 文件读取最后一条记录

c - 如何在使用标准 C 拒绝无效数字的同时将罗马数字转换为 int?

c - 从C语言中,如何打印Lua堆栈的内容?

java - 如何在使用字节数组更改后将图像字节数组转换为位图

在内核中调用 do_fork

c - 我的反向函数出了什么问题

c - 如何清除C中的内存?

c - 将数组传递给函数错误?

java - 如何在字符串中搜索相同的模式,然后将它们放入Java中的数组中?

javascript - 如何从数组添加到 <SVG> 元素