【发布时间】:2016-02-01 07:49:40
【问题描述】:
输入几个数字后,我的控制台不断崩溃。我试图通过控制台从用户那里获取一个包含 10 个数字的数组,然后计算正数、负数、偶数和赔率。我究竟做错了什么?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int pos, neg, even, odd;
int nums[10];
printf("Give me 10 numbers: ");
pos = neg = even = odd = 0;
for(int i = 0; i < 10; i++){
scanf(" %d", nums[i]);
if(nums[i] > 0){
pos++;
if(nums[i] % 2 == 0){
even++;
}
else{
odd++;
}
}
else{
neg++;
}
}
printf("Positives: %d, Negatives: %d, Evens: %d, Odds: %d\n", pos, neg, even, odd);
return 0;
}
【问题讨论】:
-
你没有收到任何关于你如何使用
scanf的警告吗? -
另外,您的负数不计入偶数或奇数。将您的模一
if移出。并且 0 将按照上面的逻辑算作奇数(请记住,0 既不是正数也不是负数,它需要自己的情况)。