我们的任务是制作一个程序,该程序仅接受来自用户的十个输入,然后将其排序为偶数或奇数数组。
- 接受 10 个输入。
- 分离到偶数或奇数数组。
- 打印偶数/奇数数组中有多少。
- 打印每个数组中的数字。
这是我制作的程序:
#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/