C語言眾數問題,C語言 眾數問題

2022-08-20 06:47:10 字數 2958 閱讀 8837

1樓:今生今滅

我也做了個..速度很快啊..

#include

#include

void main()

}printf("\n眾數為:%d\n重數為:%d\n",zhongshu,chongshu);

free(a);}

c語言求眾數問題 100

2樓:法拉克的

演算法很多。大致思路如下:

定義資料範圍:如0-100,

定義陣列1:int a[101]//標保證任何資料都可以容納,並且初始化為0。

定義陣列2:int data[n] //待處理陣列,自己初始化。

**如下:

#include

void main()

;int nmax = 0;

int data[50] = ;//這個你自己初始化for(int i=0;i<50;i++)a[data[i]]++;

for(int n=0;n<101;n++)for(int k=0;k<101;k++)}

c語言求眾數的問題

3樓:匿名使用者

for (i=0;i<9;i++)}}

printf("眾數是%d\n",k+1);

以上這段**有問題。改成如下:

for(i=0, k=0; i<9; i++)printf("眾數是%d\n",k+1);

用c語言求一組資料的眾數

4樓:戰略學院

思路:1、找出資料中的最大數max和最小數min2、實現一個哈西表cishu,長度為max-min+1 用於存放每個資料出現的次數,cishu[i]的初值為0

3、哈西函式:min的哈西位置為0,max的哈西位置為max-min,按這個線性規律,把其他資料對映到相應位置

4、對每個資料計算它的哈西函式值h,然後cishu[h]++ok補充:如果你沒有學過哈西表,可以用「punkboy85」所說的方法。不過他的演算法時間複雜度是o(n*n)

用哈西表的演算法時間複雜度是o(n)

用c語言找眾數

5樓:匿名使用者

1、先將陣列a[n]排序(增序、降序都可以)

2、從a[i++]開始統計,若相等則計數器b[j++],如此重複。

3、在b[n]查詢最大數max,並記錄max在b[n]中的索引imax

4、設定標誌flag = 1,若滿足(b[i] == max && i != imax),則flag = 0

5、若falg = 0,返回-1,否則返回b[imax]

#include

#include

#include

const int n = 10;

void sort(int a,int n)

if(i != k) }}

void show(int a, int n)

int main()

++m;

imax = 0;

for(i = 1; i < m; ++i)

flag = 1;

for(i = 0; i < m && flag; ++i) // 是否存在眾數?

if(b[i] == b[imax] && i != imax)

flag = 0;

printf("%d\n",flag ? b[imax] : -1);

return 0;}

6樓:在大圍山拉小提琴的冷杉

你的需求是什麼?是要一個函式麼?

已寫好get_ascendingorder(int *array)

是什麼意思?意思是函式定義成這個名字麼?

c語言求程式設計:眾數

7樓:匿名使用者

陣列排序可以不用指標。你把陣列定義成全域性變數,比如說a[10001];然後呼叫我給你的快排程式就行了,這個程式可以背下來,很有用的。

void qs(int l,int r)

}if(ihash[max]) max=a[i];

}最後輸出max就好了

剛t415422663倒是提醒我了,如果要判斷眾數有多個,我可以把上面的程式稍改一下

int hash[10001]=;

int i,max=-1;/*注意,這裡把max賦值為-1是為了防止陣列a的元素個數為0時所有資料都被輸出*/

for(i=1; i<=n; ++i)

//10000是陣列a中可能出現的最大值,這個你可以自己改的

for(i=1; i<=10000; ++i)

if(hash[i]==max) printf("%d\n",i);

你的串號我已經記下,採納後我會幫你製作

c語言程式設計,求眾數

8樓:匿名使用者

int a[n],a[n];

不能這樣定義的吧。。。

a[a[i]]++;

這句有問題!

若輸入的a[i]大於n,則超出了a的下標範圍訪問陣列超範圍的下標,就會runtime error。。。

9樓:匿名使用者

(1)"int a[n],a[n]"定義有問題,定義一個陣列,應該用常量制定陣列的長度,而不是變數

(2)"a[a[i]]++";如果a[i]是一個很大很大的數,就會超出陣列的範圍,出現錯誤

10樓:

int a[n],a[n];

宣告時的陣列大小不能為變數,一定要為常數

11樓:匿名使用者

至於眾數,我覺得最好的方法是用bfs。但這個對你來說難度有點大,我就給你寫一個hash表吧。還用上面的那個陣列,且假定陣列a中的最大值不超過10000,若

c語言問題,C語言問題

struct student拼寫成struct studnt了。拼寫錯誤 struct studnt沒有定義,所以無法執行sizeof。include typedef struct student int main c語言問題?嗯你的理解是對的,break就是用來跳出的switch,如果沒有brea...

c語言問題,c語言問題

首先你這個程式輸入個數是不可控的,n沒起到作用,因為你控制輸入的迴圈已經規定了i是從0到99,必須要輸入100個。而你這個 自認為統計總人數 的n n i,相當於n 1 2 3 那是不可能的。while xh i scanf d d xh i sg i n i sum sum sg i 用美元符號做...

c語言問題,C語言問題

if判斷句中,x 1 是真命題,所以x被賦值為1,y x,所以y被賦值為1。下一條語句,y y 1,所以y 2。所以x 1,y 2 c語言問題?這句迴圈的bai意義是從索引9開始du 向左遍歷元素,直到i j結束。zhi 整段代dao碼是接收鍵盤輸版入一個值,按大小順序插權入到陣列。第一個迴圈是從陣...