编程C

时间:2015-10-14 18:59:42

标签: c

我需要一些帮助解决这个问题:

  

公司以佣金为基础向销售人员付款。销售人员每周收到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,我不知道为什么。有人能帮助我吗?

3 个答案:

答案 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))

或某些内容,如果您希望它在输入上面的内容时退出。