该程序应该读取输入的数字并确定它们是偶数还是奇数。 然后它需要显示奇数和偶数以及输入数字的平均值。当输入0
时它会停止。输入后程序挂起
我的问题是,它只是在输入第一个数字后挂起。
#include "stdio.h"
int main(void)
{
int oddcount = 0, evencount = 0; /* Count of even and odd numbers. */
int number;
float avge = 0, avgo = 0; /* Average for even and odd numbers. */
int evennum = 0, oddnum = 0;
printf("Enter a number or enter 0 to stop: ");
scanf_s("%i", &number);
while(number != 0)
{
if(number % 2 == 0)
{ evencount = evencount + 1;
evennum += number; }
else
{ oddcount = oddcount + 1;
oddnum += number; }
}
if(oddnum != 0)
avgo = oddnum/oddcount; /* Finding the odd average. */
if(evennum != 0)
avge = evennum/evencount; /* Finding the even average. */
printf("Here is the count odd %i and even %i numbers.\n", oddcount, evencount);
printf("And their averages %f odd and %f even.\n", avgo, avge);
return 0;
}
的你到底有'同时添加其他scanf函数的另一种方法(数!= 0)'循环。如果用户输入的数字不是零,该循环将如何退出? – shf301 2014-10-18 19:29:29
看看shekhar suman的回答,它会解决你的问题。 – Jite 2014-10-18 20:29:40
此行:scanf_s(“%i”,&number);不读取整数。也许你的意思是:scanf_s(“%d”,&number);但是,这不会消耗用户在键入第一个数字后按下Enter键时生成的'\ n'。建议使用:scanf_s(“%d”,&number);这将消耗白色空间,然后获得数字。此外,在循环中,不再输入数字,因此数字永远不会更新。所以循环永远不会结束。 – user3629249 2014-10-19 01:14:39