因为你的b在第一次输入后没有被重置,所以第二次输入时b初始值为5,最后输出为511=5
在外层while下添加一个b=1即可
有帮助望采纳
修改如下,供参考:
#include<stdio.h>
int main()
{
int a, b, n, i;
while (scanf("%d", &n) != EOF)
{
b = 1, i = 1;
do {
scanf("%d", &a);
if (a % 2 == 1) {
b = a * b;
}
i = i + 1;
} while (i <= n);
printf("%d\n", b);
}
return 0;
}