C中while循环的问题-拒绝输入,但第二次接受相同的输入
我正在努力让这个程序正常运行。它会提示用户输入非零整数,如果未输入非零整数,则while循环应一直提示用户,直到输入非零整数 然后,它获取整数并将其用作用户可以输入的双条目数量。然后程序调用一个函数,该函数取这些用户确定的双倍值的最大值、最小值和平均值 我的问题是,即使我输入一个非零整数,它也会拒绝它并再次循环提示。但是,它第二次接受非零整数。代码如下。谢谢C中while循环的问题-拒绝输入,但第二次接受相同的输入,c,C,我正在努力让这个程序正常运行。它会提示用户输入非零整数,如果未输入非零整数,则while循环应一直提示用户,直到输入非零整数 然后,它获取整数并将其用作用户可以输入的双条目数量。然后程序调用一个函数,该函数取这些用户确定的双倍值的最大值、最小值和平均值 我的问题是,即使我输入一个非零整数,它也会拒绝它并再次循环提示。但是,它第二次接受非零整数。代码如下。谢谢 #include<stdio.h> void mmm (int n); int main() { int num;
#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);
}
#包括
无效mmm(int n);
int main()
{
int-num;
printf(“输入一个正的非零整数:”);
scanf(“%d”和&num);
而(num<1);
{
printf(“无效数字!\n”);
printf(“输入一个正的非零整数:”);
scanf(“%d”和&num);
}
mmm(num);
返回0;
}
无效mmm(整数n)
{
双最小值、最大值、平均值、总和、条目;
int i;
printf(“******最小最大值和平均值******\n”);
printf(“输入%d个数字,用空格分隔:”,n);
总和=0;
对于(i=1;i条目)
最小值=输入;
}
平均值=总和/n;
printf(“%d个数字的最小值、最大值和平均值:%.2lf、%.2lf、%.2lf\n”、n、最小值、最大值、平均值);
}
好的,我通过在main中实现do-while循环解决了这个问题:
#include<stdio.h>
void mmm (int n);
int main()
{
int num;
do{
printf("Enter a positive nonzero integer: ");
scanf("%d", &num);
}
while (num <= 0);
mmm(num);
return 0;
}
#包括
无效mmm(int n);
int main()
{
int-num;
做{
printf(“输入一个正的非零整数:”);
scanf(“%d”和&num);
}
while(num)将分号从while(num<1)中删除;
oughtfor(i=1;i normalfor(i=0;i
。