JAVA求数组中众数_查找数组中的众数

输入10个整型数据到数组中,查找众数(输入次数最多的那个数)

#include

#include >

struct node{  //定义一个结构体,用于记录数字出现的次数

int x;

int x_number;

};

int main(void)

{

int array[10];

int i,j;

int flag=0;

int index=1;

int max,max_idex;

struct node node_array[10] = { 0 };  //计数数组(定义数数组记录出现的数字)

printf("请输入数组\n");

for (i = 0; i < 10; i++)        //输入10个整型数字

{

scanf("%d", array + i);

}

printf("输入的数组为:");

for (i = 0; i < 10; i++)        //打印

{

printf(" %d\t", array[i]);

}

printf("\n");

for (i = 0; i < 10; i++)        //遍历数组

{

if (array[i] == 0)        //把数字0存储在第一个元素中

{

node_array[0].x_number += 1;  //如果出现0 计数++

continue;            //继续遍历

}

for (j = 0; j < 10; j++)

{

if (array[i] == node_array[j].x)  //查找数中的元素是否已经计数

{

node_array[j].x_number++;  //如果已经计数,计数++

flag = 1;

continue;        //继续遍历

}

}

if (flag == 0)      //遍历的元素没有开始计数

{

node_array[index].x = array[i];  //添加到计数数组

node_array[index].x_number += 1;

index++;

}

flag = 0;

}

max = node_array[0].x_number;

max_idex = 0;

for (i = 0; i < index-1; i++)    //查找计数数组中计数最大的元素

{

if (max < node_array[i + 1].x_number)

{

max = node_array[i + 1].x_number;

max_idex = i + 1;    //计数数组中计数最大的元素的下标

}

}

printf("众数为:%d\t出现次数为:%d\n", node_array[max_idex].x, node_array[max_idex].x_number);

system("pause");

return 0;

}

你可能感兴趣的:(JAVA求数组中众数)