最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
c語言用函數(shù)編程眾數(shù) c語言 眾數(shù)

c語言求編程:眾數(shù)

數(shù)組排序可以不用指針。你把數(shù)組定義成全局變量,比如說a[10001];然后調(diào)用我給你的快排程序就行了,這個程序可以背下來,很有用的。

創(chuàng)新互聯(lián)主營鼓樓網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶APP軟件開發(fā),鼓樓h5小程序定制開發(fā)搭建,鼓樓網(wǎng)站營銷推廣歡迎鼓樓等地區(qū)企業(yè)咨詢

void qs(int L,int R)

{

int i=L,j=R,mid=a[(L+R)/2],t;

while(ij)

{

while(a[i]mid) ++i;

while(a[j]mid) --j;

if(i=j)

{

t=a[i]; a[i]=a[j]; a[j]=t;

++i; --j;

}

}

if(iR) qs(i,R);

if(Lj) qs(L,j);

}

排好序之后找中位數(shù)就好辦了。

至于眾數(shù),我覺得最好的方法是用bfs。但這個對你來說難度有點大,我就給你寫一個hash表吧。還用上面的那個數(shù)組,且假定數(shù)組a中的最大值不超過10000,若超過,你把下面這個hash數(shù)組的范圍擴大就行了。

另外,設a中有n個元素,a從1開始計數(shù)(若從0開始,你改一下就好了)

int hash[10001]=;

int i,Max=0;

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

{

++hash[a[i]];

if(hash[a[i]]hash[Max]) Max=a[i];

}

最后輸出Max就好了

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

int hash[10001]=;

int i,Max=-1;/*注意,這里把Max賦值為-1是為了防止數(shù)組a的元素個數(shù)為0時所有數(shù)據(jù)都被輸出*/

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

{

++hash[a[i]];

if(hash[a[i]]Max]) Max=hash[a[i]];

}

//10000是數(shù)組a中可能出現(xiàn)的最大值,這個你可以自己改的

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

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

你的串號我已經(jīng)記下,采納后我會幫你制作

如何用c語言求眾數(shù)

#includestdio.h

int main ()

{ int n,i,j,t,max=0,a[1000][2]={0};

scanf("%d",n);

for(i=0; in; i++)

scanf("%d",a[i][0]);

//? ?printf("OK\n");

for(i=0; in-1; i++)

for(j=0; jn-1-i; j++)

if(a[j][0]a[j+1][0])

{ t=a[j][0];

? a[j][0]=a[j+1][0];

? a[j+1][0]=t;

}

for(i=0; in;)

{ a[i][1]=1;

for(j=i+1; a[j][0]==a[i][0]; j++)

a[i][1]++;

if(a[i][1]max)max=i;

i=j;

}

for(i=0; in; i++)

if(a[i][1]==a[max][1])

? printf("%d ",a[i][0]);

return 0;

}

用C語言找眾數(shù)

1、先將數(shù)組a[N]排序(增序、降序都可以)

2、從a[i++]開始統(tǒng)計,若相等則計數(shù)器b[j++],如此重復。

3、在b[N]查找最大數(shù)max,并記錄max在b[N]中的索引imax

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

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

#include?stdio.h

#include?stdlib.h

#include?time.h

const?int?N?=?10;

void?Sort(int?a[],int?n)?{

int?i,j,k,t;

for(i?=?0;?i??n-?1;?++i)?{

k?=?i;

for(j?=?i?+?1;?j??n;?++j)?{

if(a[k]??a[j])?k?=?j;

}

if(i?!=?k)?{

t?=?a[i];

a[i]?=?a[k];

a[k]?=?t;

}

}

}

void?Show(int?a[],?int?n)?{

int?i;

for(i?=?0;?i??n;?++i)

printf("%d?",a[i]);

printf("\n");

}

int?main(){

int?i,m,flag,imax;

int?a[N],b[N];

srand((unsigned)time(NULL));

for(i?=?0;?i??N;?++i)?//?生成數(shù)組元素序列

a[i]?=?rand()%(1?*?N);?

Sort(a,N);

Show(a,N);

b[0]?=?1;

for(i?=?1,m?=?0;?i??N;?++i)?{?//?統(tǒng)計各種大小數(shù)的個數(shù)

if(a[i]?==?a[i?-?1])?++b[m];

else?b[++m]?=?1;

}

++m;

imax?=?0;

for(i?=?1;?i??m;?++i)?{?//?查找"眾數(shù)"的個數(shù)

if(b[i]??b[imax])

imax?=?i;

}

flag?=?1;

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

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

flag?=?0;

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

return?0;

}

C語言編程,求眾數(shù)

int a[n],A[n];

不能這樣定義的吧。。。

A[a[i]]++;

這句有問題!

若輸入的a[i]大于n,則超出了A的下標范圍

訪問數(shù)組超范圍的下標,就會Runtime Error。。。


網(wǎng)頁題目:c語言用函數(shù)編程眾數(shù) c語言 眾數(shù)
新聞來源:http://fisionsoft.com.cn/article/ddgppgs.html