主题:这个简单的程序错在哪里
先上写的代码,如下:
/*
文件描述:-- 判断奇数与偶数
程序功能:-- 刻意的使用switch
创建人员:-- 凌晨一点 , 2011年1月16日
广而告之:-- 为保证代码缩进一致,请修改编泽器Tab键的空格数为4
版本号:0.1
修改次数:0
备注: 有个致命的BUG,开始输入0便可出现
*/
#include <stdio.h>
int main(void)
{
short count, even, odd, even_sum, odd_sum, average;
even_sum = 0;
odd_sum = 0;
even = 0;
odd = 0;
for(scanf("%d",&count); count; scanf("%d",&count))
{
switch(count % 2)
{
case 0: /* 能整除则为偶数 */
even++; /*偶数个数依次递增*/
even_sum += count; /*所有的偶数相加 */
break;
default : /* 不能被整除则是奇数 */
odd++; /* 奇数个数依次递增 */
odd_sum += count; /* 所有的奇数相加 */
break;
}
}
printf("有%d个偶数,平均值为%d.\n", even, even_sum / even);
printf("有%d个奇数,平均值为%d.\n", odd, odd_sum / odd);
printf("bye.\n");
getch();
return 0;
}
这是书中题目需要switch,不然我才不用它,if else多好。可是做完之后,我调了几遍,还是发现了BUG,还是致命的。我使用的是dev-c++编译器。
如果我直接输入数字0,或者在键入的的值中只有偶数或只有奇数而没有另外类型的数,就提示“应用程序发生异常”我却看不出有什么毛病,个人感觉变量的值都对呀。
如果键入的数值既有奇数又有偶数,最后以0结束输入,程序输出结果,这个程序看起来倒像是正常的,还好我多调了几次。
从个人的角度看,实在看不出哪里有问题,导致程序崩溃。求指点,问题出在哪里,感激不尽。
/*
文件描述:-- 判断奇数与偶数
程序功能:-- 刻意的使用switch
创建人员:-- 凌晨一点 , 2011年1月16日
广而告之:-- 为保证代码缩进一致,请修改编泽器Tab键的空格数为4
版本号:0.1
修改次数:0
备注: 有个致命的BUG,开始输入0便可出现
*/
#include <stdio.h>
int main(void)
{
short count, even, odd, even_sum, odd_sum, average;
even_sum = 0;
odd_sum = 0;
even = 0;
odd = 0;
for(scanf("%d",&count); count; scanf("%d",&count))
{
switch(count % 2)
{
case 0: /* 能整除则为偶数 */
even++; /*偶数个数依次递增*/
even_sum += count; /*所有的偶数相加 */
break;
default : /* 不能被整除则是奇数 */
odd++; /* 奇数个数依次递增 */
odd_sum += count; /* 所有的奇数相加 */
break;
}
}
printf("有%d个偶数,平均值为%d.\n", even, even_sum / even);
printf("有%d个奇数,平均值为%d.\n", odd, odd_sum / odd);
printf("bye.\n");
getch();
return 0;
}
这是书中题目需要switch,不然我才不用它,if else多好。可是做完之后,我调了几遍,还是发现了BUG,还是致命的。我使用的是dev-c++编译器。
如果我直接输入数字0,或者在键入的的值中只有偶数或只有奇数而没有另外类型的数,就提示“应用程序发生异常”我却看不出有什么毛病,个人感觉变量的值都对呀。
如果键入的数值既有奇数又有偶数,最后以0结束输入,程序输出结果,这个程序看起来倒像是正常的,还好我多调了几次。
从个人的角度看,实在看不出哪里有问题,导致程序崩溃。求指点,问题出在哪里,感激不尽。