首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

大家指点上

2012-10-23 
大家指点下!#includestdio.hint main(void){int odd,even,n,sum_e,sum_o,moddevensum_esum_o0prin

大家指点下!
#include<stdio.h>
int main(void)
{
int odd,even,n,sum_e,sum_o,m;
odd=even=sum_e=sum_o=0;
printf("Please input the number");
printf("input 0 to quit\n");
while(scanf("%d",&n)==1)
{
if(n==0)
break;
switch(m=n%2)
{
case 0:
even++;
sum_e+=n;
break;
case 1:
odd++;
sum_o+=n;
break;
}
}
printf("odd is %d,and the average is %.1f \n",odd,(float)(sum_o/odd));
printf("even is %d,and the average is %.1f \n",even,(float)(sum_e/even));
return 0;
}
这是我写的一个程序,程序想要表达的思想如下:
  编写一个程序。该程序读取整数,直到输入0。输入终止后,程序应该报告输入的偶数(不包括0)总个数、偶数的平均值,输入的奇数总个数以及奇数的平均值

当我输入一串数,以数字0 quit时,程序运行正常,但是我如果第一个数字就输入0时,该文件就会停止工作,请问是怎么回事,大家指点一下!谢谢了!




[解决办法]
很简单啊,输入0时不进入循环,而你之前给odd赋值为0,然后它又做除数……
[解决办法]
while直接写成while(scanf("%d",&n)==1&&n!=0)就行了。循环体的break有点多余了

热点排行