【发布时间】:2013-09-16 16:56:11
【问题描述】:
这是代码:
#include <stdio.h>
int group, regular_group, regular_members, shutdown, special_group,
special_members;
float average_special, average_regular;
main()
{
do
{
printf("How many members are in the group?\n");
scanf("%d", &group);
if (group >= 15)
{
regular_group = regular_group + 1;
regular_members = regular_members + group;
printf("Do you want to add another group? yes = 1, no = 0 \n");
scanf("%d", &shutdown);
}
else
{
special_group = special_group + 1;
special_members = special_members + group;
printf("Do you want to add another group? yes = 1, no = 0 \n");
scanf("%d", &shutdown);
}
}
while (shutdown == 1);
average_regular = regular_members / regular_group;
average_special = special_members / special_group;
printf("\nTotal regular members:\n%d\n", regular_members);
printf("\nTotal special members:\n%d\n", special_members);
printf("\nAverage regular members in a group:\n%f\n", average_regular);
printf("\nAverage special members in a group:\n%f\n", average_special);
fflush(stdin);
getchar();
}
如果一个组大于 15,它自动成为一个常规组,但如果它小于它一个特殊组。我需要每个类别的成员总数。 成员总数工作正常。但我还需要一组两个类别的平均大小。但平均值始终为 0,000000。但是我找不到错误..请帮助我
非常感谢!
【问题讨论】:
-
啊,这是一个翻译错误。我忘了从荷兰语>英语翻译。在我的原始代码中是一样的
-
在这里工作,除了如果至少一次输入值 >15 和一次输入值 1<enter>1<enter>16<enter>0 输出
16.00000<cr/lf>1.00000<cr/lf>。 -
@alk 只需要除以零检查即可避免这种情况。
-
顺便说一句:这是
int main(void)! -
为了帮助调试,将格式从
%f更改为%e以查看average_regular是否真的是0.000000。