我一直在尝试为将输入存储到数组然后允许我将其打印出来的程序进行编码。这也让我知道哪个数字最大。我想弄清楚的是如何让我的程序告诉我输入数组中最大数字的次数(出现次数)。到目前为止,这是我的代码。到目前为止,此代码将我输入的数字输出到数组,数组中最大的元素以及我输入的每个数字的出现(数字的出现是不正确的)。总而言之,每个数字的出现次数均为0。这显然是错误的。同样,我需要我的程序显示最大的数字(确实如此),并且仅显示最大的数字。欢迎所有建议,技巧或想法。谢谢。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>



int main()
{
int arrayNum[15];
int a;
int max=0;
int location;


for( a=0; a < 15; a++)
    {
        printf("Enter element %d:", a);
        scanf("%d",&arrayNum[a]);
    }

for(a=0; a < 15; a++)
    {
        printf("%d\n", arrayNum[a]);
    }

for (a = 1; a < 15; a++)
  {
    if (arrayNum[a] > max)
    {
       max  = arrayNum[a];
       location = a+1;
    }
    }
printf("Max element in the array in the location %d and its value %d\n", location, max);

for(a=0; a<15; a++)
    {
        if(arrayNum[a+1] == arrayNum[a])
            continue;
        else
            printf("Number %d: %d occurences\n", arrayNum[a]);
    }
return 0;





}

最佳答案

在您开始以下循环之前,max仍然为0

  max = a[0];

  for (a = 1; a < 15; a++)
  {
    if (arrayNum[a] > max)
    {
       max  = arrayNum[a];
       location = a+1;
    }
  }


后来

int n=0;
for(i=0;i<15;i++)
{
   if(max == a[i])
   n++;
}

printf("Number of times max appears in the array is %d\n",n);

10-07 14:25
查看更多