查找数组中的众数
Posted dog-pi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找数组中的众数相关的知识,希望对你有一定的参考价值。
输入10个整型数据到数组中,查找众数(输入次数最多的那个数)
#include <stdio.h>
#include <stdlib.h>>
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("请输入数组
");
for (i = 0; i < 10; i++) //输入10个整型数字
{
scanf("%d", array + i);
}
printf("输入的数组为:");
for (i = 0; i < 10; i++) //打印
{
printf(" %d ", array[i]);
}
printf("
");
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 出现次数为:%d
", node_array[max_idex].x, node_array[max_idex].x_number);
system("pause");
return 0;
}
以上是关于查找数组中的众数的主要内容,如果未能解决你的问题,请参考以下文章
501. Find Mode in Binary Search Tree查找BST中的众数
501. Find Mode in Binary Search Tree 查找BST中的众数