找到最大的数字,它的频率,停在0

时间:2015-07-09 14:53:29

标签: c

所以我必须编写一个程序来读取数字,找到最大的数字,并告诉用户它出现的频率。该程序一旦读取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;
}

2 个答案:

答案 0 :(得分:2)

我现在看到三个错误,

  1. 在询问用户输入时

    scanf("%d", max);
    

    错了。 scanf()期望提供的格式说明符的指针类型扩充。将其更改为

    scanf("%d", &max);
    
  2. 然后,else if (max=a)也是错误的。 =是作业,==是比较。

  3. fflush(stdin);undefined behaviour。您不应该在输入流上使用fflush()

答案 1 :(得分:1)

else if (max=a)是错误的。比较运算符为==而非=,即赋值。