c无限循环错误

该程序正确构建,但我得到一个无限循环的随机数,我不知道为什么。 一世

int getInt(void);
double getDbl(void);
void prnTitle(void);
void prnFooter(double gTotal);
void pause(void);
double getDblLimited(double lowerLimit, double upperLimit);
  • 在提交里程碑之一时注释掉主要内容
  • 您的最后一个里程碑应该通过以下测试程序完美运行。
  • 注释掉main()删除箭头后面的下两个字符

    int main (void)
    {
        int iVal;
        double dVal;
        welcome();
    
        // testing prnTitle()
        printf("listing header and footer with grand total:n");
        prnTitle();
    
    
    
        // Testing prnFooter()
        prnFooter(1234.5678);
        printf("listing header and footer without grand total:n");
        prnTitle();
        prnFooter(-1);
    
    
        // Testing Pause() and clrKyb()
        pause();
    
    
        // Testing getInt()
        printf("Enter an integer: ");
        iVal = getInt();
        printf("You entered: %dn", iVal);
    
    
        // Testing Get Int Limited
        printf("Enter an integer between 10 an 20: ");
        iVal = getIntLimited(10, 20);
        printf("Your entered %dn", iVal);
    
    
        // Testing Get Double
        printf("Enter a floating point number: ");
        dVal = getDbl();
        printf("You entered: %0.2lfn", dVal);
    
    
        // Tesing Get Double Limited
        printf("Enter a floating point number between 10.00 an 20.00: ");
        dVal = getDblLimited(10.0, 20.0);
        printf("You entered: %0.2lfn", dVal);
    
    
    
        printf("End of tester program for milestone one!n");
        return 0;
        }
    
    
    /* End Commenting out the main out*/
    
    // implement your functions for milestone one down here:
    void welcome(void)
    {
        printf("---=== Grocery Inventory System ===---n");
    
    }
    
    void prnTitle(void)
    {
        printf("Row |SKU| Name t | Price |Taxed| Qty | Min |  Total  |Atn n");
        printf("----+---+--------------------+--------+-----+-----+-----+------------+|---n");
    
    }
    void prnFooter(double gTotal)
    {
        printf("--------------------------------------------------------+-----------------n");
        //float  gTotal = 1234.57;
        while (gTotal > 0)
        {
            printf("%12.21f", gTotal);
        }
    }
    void clrKyb(void)
    {
        char b;
        while (b != 'n')
        {
            scanf("%c", &b);
        }
    
    }
    void pause(void)
    {
        printf("Press <Enter> to continue...");
    
        clrKyb();
    
    }
    int getInt(void)
    {
        //printf("Enter an interger:");
        int d;
        char c;
        scanf("%d%c", &d, &c);
        while (c != 'n')
        {
            printf("Invalid integer, please try again ");
            scanf("%d%c", &d, &c);
        }
        return d;
    }
    int getIntLimited(int lowerLimit, int upperLimit)
    {
        int a;
        //printf("Enter an integer between %d and %d:", lowerLimit, upperLimit);
        scanf("%d", &a);
        while (a <= lowerLimit || a >= upperLimit)
        {
        //  printf("Invalid value, %d < value < %d:", lowerLimit, upperLimit);
            scanf("%d", &a);
        }
        return a;
    }
    double getDbl(void)
    {
        double d;
        char c;
    //  printf("Enter a floating point number:");
        scanf("%lf,%c", &d, &c);
        while (c != 'n')
        {
            printf("Invalid number, please try again ");
            scanf("%lf%c", &d, &c);
        }
        return d;
    }
    
    double getDblLimited(double lowerLimit, double upperLimit)
    {
        double a;
        printf("Enter a floating point number between %f and %f:", lowerLimit, upperLimit);
        scanf("%lf", &a);
        while (a <= lowerLimit || a >= upperLimit)
        {
            printf("Invalid value, %f < value < %f:", lowerLimit, upperLimit);
            scanf("%lf", &a);
    
        }
        return a;
        return 0;
    }
    

    void prnFooter(double gTotal)
    {
        printf("--------------------------------------------------------+-----------------n");
        //float  gTotal = 1234.57;
        while (gTotal > 0)
        {
            printf("%12.21f", gTotal);
        }
    }
    

    你永远不会修改循环内gTotal的值。 如果它大于0进入循环,它将永远大于0,因此是无限循环。

    链接地址: http://www.djcxy.com/p/72187.html

    上一篇: c Infinite loop error

    下一篇: point of arguments in main function