我正在尝试使该程序正常运行。它提示用户输入非零整数,如果未输入非零整数,则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);
}
答案 0 :(得分:1)
好的,我通过在main中实现一个do-while循环来解决此问题:
state