所以我必须编写一个程序来读取数字,找到最大的数字,并告诉用户它出现的频率。该程序一旦读取0就需要停止,但我遇到了麻烦。
到目前为止,如果我输入它,每次打印最大值为0。频率也有时会搞砸。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <cstdlib>
int main()
{
int max, count, a;
count =1;
printf("Enter numbers:");
scanf("%d", max);
do
{
scanf("%d",&a);
if(max<a)
{
max=a;
count=1;
}
else if (max=a)
{
count++;
}
else count+=0;
}
while(a!=0);
printf ("The largest number is %d, and it occurs %d times \n", max, count);
/* system("pause"); */
printf("Press enter to continue...\n");
fflush(stdin);
getchar();
return 0;
}
答案 0 :(得分:2)
我现在看到三个错误,
在询问用户输入时
scanf("%d", max);
错了。 scanf()
期望提供的格式说明符的指针类型扩充。将其更改为
scanf("%d", &max);
然后,else if (max=a)
也是错误的。 =
是作业,==
是比较。
fflush(stdin);
是undefined behaviour。您不应该在输入流上使用fflush()
。
答案 1 :(得分:1)
else if (max=a)
是错误的。比较运算符为==
而非=
,即赋值。