输入十个整数,求奇数和,偶数和

#include
int main() {
    int num1, num2;
    int o = 0;
    int p = 0;
    int arg[10] = {};
    int arg1[10] = {};
    int arg2[10] = {};
    scanf("%d %d %d %d %d %d %d %d %d %d", &arg[0], &arg[1], &arg[2], &arg[3], &arg[4], &arg[5], &arg[6], &arg[7], &arg[8], &arg[9]);
    while ((o < 10)&&(arg[o] % 2 == 1)) {
        arg1[o] = arg[o];//将arg中的奇数赋给arg1
        o++;
    }
    while ((p < 10 )&& (arg[p] % 2 != 1)) {
        arg2[p] = arg[p];//将arg中的偶数赋给arg2
        p++;
    }    
    num1 = arg1[0]+ arg1[1] + arg1[2] + arg1[3] + arg1[4] + arg1[5] + arg1[6] + arg1[7] + arg1[8] + arg1[9] ;
    num2 = arg2[0] + arg2[1] + arg2[2] + arg2[3] + arg2[4] + arg2[5] + arg2[6] + arg2[7] + arg2[8] + arg2[9];
    printf("奇数为%d\n", num1);
    printf("偶数为%d", num2);
}

为啥不行啊

img

你这arg1 arg2的,不写循环,不累么

#include <stdio.h>
int main()
{
int sum0, sum1;
int x;
sum0 = sum1 = 0;
for(int i = 0; i < 10; i++)
{
scanf("%d", &x);
if (x % 2 == 0) sum2 += x; else sum1 += x;
}
printf("奇 %d, 偶 %d", sum1, sum2);
return 0;
}

首先代码太啰嗦,用循环更好。
其次就你代码自身来说,while循环有问题,比如第二个偶数循环,当arg[p] = 1时,不满足余数不为1,这是while就结束了啊!!!而你本来的目的应该是遍历所有数组元素啊。