我需要一些帮助解决这个问题:
公司以佣金为基础向销售人员付款。销售人员每周收到100.00美元加上该周总销售额的9%。例如,一周内总销售额为3000.00美元的销售人员将获得370.00美元(100.00 + 3000 * 0.09)。 编写一个C程序(使用一组计数器)确定有多少销售人员在以下每个范围内获得工资:
我。 100美元 - 199
II。 200美元 - 299
III。 $ 300 - 399
IV。 400美元 - 499年 v。$ 500 - 599
六。 600美元 - 699年 七。 700美元 - 799年 八。 800美元 - 899年 九。 900美元至999美元 X。 1000美元及以上
注意:将每个销售人员的工资归为整数。为30名销售人员组成的团队测试您的程序,以获得0到15000之间随机生成的总销售数据。
适当记录和缩进源代码,以提高可读性。
这是我到目前为止所拥有的:
#include <stdio.h>
#include <math.h>
int main()
{
int salesperson[10] = {};
int gross = 0;
int commission = 1;
{
while(gross != 0);
printf("please enter a number from 0-3000 %\n;");
printf("Enter gross sales: ");
scanf("%d", &gross);
commission = 100 + (.09 * gross);
if (commission >= 100 && commission <= 199)
{
salesperson[0]++;
}
if (commission >= 200 && commission <= 299)
{
salesperson[1]++;
}
if (commission >= 300 && commission <= 399)
{
salesperson[2]++;
}
if (commission >= 400 && commission <= 499)
{
salesperson[3]++;
}
if (commission >= 500 && commission <= 599)
{
salesperson[4]++;
}
if (commission >= 600 && commission <= 699)
{
salesperson[5]++;
}
if (commission >= 700 && commission <= 799)
{
salesperson[6]++;
}
if (commission >= 800 && commission <= 899)
{
salesperson[7]++;
}
if (commission >= 900 && commission <= 999)
{
salesperson[8]++;
}
if (commission >= 1000)
{
salesperson[9]++;
}
}
printf("a) $100-199:%d\n", salesperson[0]);
printf("b) $200-299: %d\n", salesperson[1]);
printf("c) $300-399: %d\n", salesperson[2]);
printf("d) $400-499; %d\n", salesperson[3]);
printf("e) $500-599: %d\n", salesperson[4]);
printf("f) $600-699: %d\n", salesperson[5]);
printf("g) $700-799: %d\n", salesperson[6]);
printf("h) $800-899: %d\n", salesperson[7]);
printf("i)$900-999:%d\n", salesperson[8]);
printf("j) $1000 and over: %d\n", salesperson[9]);
return 0;
}
当我运行程序时,我的结果不断变为0,我不知道为什么。有人能帮助我吗?
答案 0 :(得分:1)
你写了这个:
{
while (gross != 0);
但我认为你的意思是:
while (gross != 0)
{
后跟while
的{{1}}语句本质上是无操作 - 循环体是空的。如果要重复大括号内的所有代码,;
需要在左大括号之前。从左大括号while
到右大括号{
的代码是循环的“主体”,即在循环的每次迭代中执行的部分。
此外,您应该将{
初始化为gross
以外的某个值,以便在您有机会获得值之前不要退出循环。 0
可用于初始值。
答案 1 :(得分:0)
你的循环没有任何身体。改变这个:
{
while (gross != 0);
printf("please enter a number from 0-3000 %\n;");
printf("Enter gross sales: ");
scanf("%d", &gross);
commission = 100 + (.09 * gross);
对此:
while (1)
{
printf("please enter a number from 0-3000 %\n;");
printf("Enter gross sales: ");
scanf("%d", &gross);
if (gross == 0) break;
commission = 100 + (.09 * gross);
答案 2 :(得分:0)
和其他答案一样,你的while循环条件毫无意义。
您从gross = 0;
然后你的循环立刻说
while(gross != 0)
即。如果总是不做某事。
但总数是0.因为那是你设定的。
所以它在打印完全初始化为0的数组值后立即退出。因此你的零。
您可以通过在while循环条件中放置更合理的东西来修复它。像:
while(! (gross > 3000))
或某些内容,如果您希望它在输入上面的内容时退出。