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碼是接收鍵盤輸版入一個值,按大小順序插權入到陣列。第一個迴圈是從陣...