1. 程式人生 > >C語言 尋找資料中的眾數

C語言 尋找資料中的眾數

室友暢的c語言作業。
基本思路:a[]用來存放資料,b[]用來存放a[]中每個資料的出現次數,注意當一個數據出現多次時,只有第一次出現時對應的b[]是次數,剩下的都是1。這樣減少判斷次數。NUM記錄眾數的出現次數,FLAG記錄眾數的出現位置。考慮到多個眾數的情況,引入c[],記錄與眾數出現次數相同的次數的資料。
原始碼如下:

#include<stdio.h>
#define N 8

int a[N+1],b[N+1],c[N+1];
int i,j;
int NUM,FLAG;
int main()
{
    for (i = 0; i < N; i++)
        b[i] = 0
; printf("Please input a array.\n"); for (i = 0; i < N; i++) scanf_s("%d",&a[i]); for (i = 0; i < N; i++) { for (j = i; j < N; j++) if (a[i] == a[j]) b[i]++; } NUM = b[0]; for (i = 0; i < N; i++) { if (NUM <= b[i]) { NUM = b[i]; FLAG = i; } } for
(i = 0; i < N; i++) c[i] = 0; c[FLAG] = a[FLAG]; for (i = 0; i < N; i++) { if (NUM == b[i]) c[i] = a[i]; } printf("Mode is:"); for (i = 0; i < N; i++) if (c[i]!=0) printf("%d&",c[i]); printf("\b \n"); return 0; }

相關推薦

C語言 尋找資料

室友暢的c語言作業。 基本思路:a[]用來存放資料,b[]用來存放a[]中每個資料的出現次數,注意當一個數據出現多次時,只有第一次出現時對應的b[]是次數,剩下的都是1。這樣減少判斷次數。NUM記錄眾

C語言(23)問題

描述 所謂眾數,就是對於給定的含有N個元素的多重集合,每個元素在S中出現次數最多的成為該元素的重數, 多重集合S重的重數最大的元素成為眾數。例如:S={1,2,2,2,3,5},則多重集S的眾數是2,其重數為3。 現在你的任務是:對於給定的由m個自然陣列成的多重集S,計

(七)一個尋找陣列的演算法

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. You ma

C語言結構體添加成員函

我們 pau 打印 log print class 控制 stdio.h 語言   我們在使用C語言的結構體時,經常都是只定義幾個成員變量,而學過面向對象的人應該知道,我們定義類時,不只是定義了成員變量,還定義了成員方法,而類的結構和結構體非常的相似,所以,為什麽不想想如何

C語言計算程序某一個函或算法的執行時間

lock nis 程序 while tar 計算 stdio.h locks turn 計算程序中某一個函數或算法的執行時間 #include <stdio.h> #include <time.h> #include <stdlib.h>

c語言 尋找一個由成對元素組成的陣列的不成對元素

       在一個數組中有很多對的元素,相互成對出現,而有2個元素則是不成對出現,要找到這兩個元素,並將其列印在螢幕上,需要用到位運算和運算子的應用。        例如{1,2,3,1,2,3,5,8},這一組元

c語言 將記憶體資料以二進位制形式寫入檔案 檔案資料表現形式

最近有在寫關於將記憶體中的資料寫入檔案的程式,當程式執行後,卻發現檔案中的位元組資料有些難以理解。思考後發現了其中的道理。 程式碼如下: #include<stdio.h> #include<stdlib.h> struct BlockInfo { bool is

資料結構(c語言版)線性表的單鏈表儲存結構

本文轉自:https://blog.csdn.net/prlhnxx/article/details/79174782 /* run this program using the console pauser or add your own getch, system("pause") or i

c語言常用資料型別所佔用的位元組

一、資料型別所佔用位元組數與機器字長與編譯器有關,遵循的幾條規律如下: sizeof(short int )<=sizeof(int) sizeof(int)<=sizeof(long int) short int 至少應為16位(2個位元組) long in 至少應為32位(

C語言獲取資料夾內所有檔名並列印到txt

程式如下: /********************************************************************************************

C語言實現資料結構的鏈棧

實現方式一# include <stdio.h># include <stdlib.h>typedef char NodeData;//鏈棧typedef struct Node

C語言)ACM資料處理問題!

ACM競賽題目的輸入資料常要求有多組,並且格式多種多樣,這是初次登OJ平臺的同學的一個障礙。實際上,這些格式可以歸為固定的幾種型別,本文介紹各種型別的處理方法,以幫助同學們克服這些障礙。   實際上,這些模式不僅是OJ平臺上做題的需要。在平時的自由程式設計練習中,也可以自

c語言實現資料結構的連結串列原始碼

#include <stdio.h> #include <stdlib.h> typedef struct LNode *List; struct LNode { int data; List next; }; struct LNode L;

c語言二分法查找一個數字的下標位置

sizeof 每次 中一 需要 ret amp 二分法查找 pre print int binary_search(int arr[], int k, int left, int right) { //int right = sizeof(arr) / sizeof

C++語言基礎(4)-構造函和析構函

編譯 編譯器 函數傳參 變量 括號 調用 col space 概念 一.構造函數的定義 類似於java,C++中也有構造函數的概念,相關用法如下: 1.1 構造函數的定義 #include <iostream> using namespace

C語言事實上不簡單:組與指針

本質 而不是 getchar() alt 由於 == sizeof 不同 來看 之前在寫C的時候,沒怎麽留意數組。就這麽定義一個。然後顛來倒去的使用即可了。只是後來碰到了點問題。解決後決定寫這麽一篇博客,數組離不開指針。索性就放一起好了。 如今我定義了一個數組:i

C語言基礎-第四課-組與字符串

cat ant 隨機數 打印 第一個 長度 stdin 有效 borde 1 數組 1.1 一維數組定義與使用 int array[10];//定義一個一維數組,名字叫array,一共有10個元素,每個元素都是int類型的 array[0]

C語言內存分配函malloc——————【Badboy】

div span 操作 key log ati 大小 結果 urn C語言中經常使用的內存分配函數有malloc、calloc和realloc等三個,當中。最經常使用的肯定是malloc,這裏簡單說一下這三者的差別和聯系。   1、聲明   這三個函數都在std

C語言文件操作函

feof err 函數 fop size con 緩沖 include gin clearerr(清除文件流的錯誤旗標) 相關函數 feof 表頭文件 #include<stdio.h> 定義函數 void clearerr(FILE * stre

C語言char*字符串組和unsigned char[]組的相互轉換

sso pri sprint %x chart += ++ nbsp class #include <iostream> #include <string> using namespace std; void convertUnC