查找数组中的众数

  输入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("请输入数组\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;
}

原文地址:https://www.cnblogs.com/dog-pi/p/10175642.html

时间: 2024-11-20 15:34:56

查找数组中的众数的相关文章

查找数组中的众数c++实现

1 #include <iostream> 2 using namespace std; 3 4 //如何统计数组中的众数 5 //思路: 先转化为有序数组 6 // 再来查找众数 7 void sortMethod(int intArray[],int array_size); 8 void printMethod(int intArray[],int array_size); 9 int zhongshuMethod(int intArray[],int array_size); 10 i

《数据结构、算法与应用》8.(顺序查找数组中第一个出现指定元素的位置)

最近在读<数据结构.算法与应用>这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢 8. 从左至右检查数组a[0:n-1]中的元素,以查找雨x相等的那些元素.如果找到一个元素与x相等,则函数返回x第一次出现所在的位置.如果在数组中没有找到这样的元素,函数则返回-1. // // main.cpp // Test_08 // // Created

php 查找数组中是否存在某项,并返回指定的字符串,可用于检查复选,单选等

/** * 查找数组中是否存在某项,并返回指定的字符串,可用于检查复选,单选等 * @param $id * @param $ids * @param string $returnstr * @return string */ function check_in($id,$ids,$returnstr = 'checked') { if(in_array($id,$ids)) return $returnstr; }

JS数组常用函数以及查找数组中是否有重复元素的三种常用方法

阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. 1 var ary = new Array("111","22","33","111"); 2 var s = ary.join(",")+","; 3 for(var i=0;i<ary.length;i++) { 4 if(s.

挑战面试编程:查找数组中第k大的数

查找数组中第k大的数 问题: 查找出一给定数组中第k大的数.例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8-- 思路: 1. 直接从大到小排序,排好序后,第k大的数就是arr[k-1]. 2. 只需找到第k大的数,不必把所有的数排好序.我们借助快速排序中partition过程,一般情况下,在把所有数都排好序前,就可以找到第k大的数.我们依据的逻辑是,经过一次partition后,数组被pivot分成左右两部分:S左.S右.当S左的元素个数|S左|等于k-1时,pivo

解析、查找数组中重复出现的元素(Java)

 解析.查找数组中重复出现的元素,Java实现. <数据结构与算法分析:解析.查找数组中重复出现的元素> 问题描述:一个结构化数据,假设事先按照某种顺序排好序(比如升序)的一个数组中,无规则.重复出现若干次某个相同元素,形如有序数组data: data = {  "A", "A", "B", "C", "C", "D", "D" , "D&q

查找数组中未出现的最小正整数

请设计一个高效算法,查找数组中未出现的最小正整数. 给定一个整数数组A和数组的大小n,请返回数组中未出现的最小正整数.保证数组大小小于等于500. 测试样例: [-1,2,3,4],4 返回:1 class ArrayMex { public: int findArrayMex(vector<int> A, int n) { // write code here // write code here sort(A.begin(),A.end()); //排序 if(A[0] > 1) r

JAVA基础(数组)数组排序和查找数组中是否还有某一个数

数组排序和数组中含有某一个数 import java.util.Arrays;class Demo4 { public static void main(String[] args) { //数组中的使用工具:Arrays int[] arr = {1,2,4,5}; //查找数组中是否还有某一个数 int num = 3; //有 : 对应索引位置 int result = Arrays.binarySearch(arr,num); System.out.println(result); //

用最小的内存和二分法查找数组中是否存在这个数

package Test; public class Test { //用最小的内存查找数组中是否存在这个数 public static void main(String[] args) { int [] arr = {12,2,3,4,5,6,7,8,90,76,43}; byte[] byt = new byte[100]; for (int i = 0; i < arr.length; i++) { byt[arr[i]] = 1; } int n = 13; if(byt[n] == 1