C中的while循环问题-拒绝输入,但第二次接受相同的输入

时间:2018-10-25 01:07:51

标签: c

我正在尝试使该程序正常运行。它提示用户输入非零整数,如果未输入非零整数,则while循环应继续提示用户,直到输入非零整数。

然后,它使用整数并将其用作用户可以输入的重复项的数量。然后,程序将调用一个函数,该函数采用这些用户确定的双精度值的最大值,最小值和平均值。

我的问题是,即使我输入了一个非零整数,它也会拒绝该整数并再次循环提示。但是,它第二次接受非零整数。下面的代码。谢谢!

#include<stdio.h>

void mmm (int n);

int main()
{
    int num;

    printf("Enter a positive nonzero integer: ");
    scanf("%d", &num);

    while(num < 1);
    {
        printf("Invalid number!\n");
        printf("Enter a positive nonzero integer: ");
        scanf("%d", &num);
    }

    mmm(num);

    return 0;
}

void mmm (int n)
{
    double min, max, mean, sum, entry;
    int i;

    printf("***** MIN MAX and MEAN *****\n");
    printf("Enter %d numbers separated by spaces: ", n);

    sum = 0;
    for(i = 1; i <= n ; i++)
    {
        scanf("%lf", &entry);
        sum += entry;



        if(i == 1)
        {
            max = entry;
            min = entry;
        }

        if(max < entry) 
        max = entry; 

        if(min > entry)
        min = entry;

    }

    mean = sum/n;

    printf("Minimum, maximum, and mean of the %d numbers: %.2lf, %.2lf, %.2lf\n", n, min, max, mean);

}

1 个答案:

答案 0 :(得分:1)

好的,我通过在main中实现一个do-while循环来解决此问题:

state