當前位置:首頁 » 編程語言 » 眾數問題c語言

眾數問題c語言

發布時間: 2022-07-16 14:51:03

『壹』 c語言編程,求眾數

(1)"int
a[n],A[n]"定義有問題,定義一個數組,應該用常量制定數組的長度,而不是變數
(2)"A[a[i]]++";如果a[i]是一個很大很大的數,就會超出數組的范圍,出現錯誤

『貳』 C語言求眾數的問題

眾數定義:
眾數(Mode)統計學名詞,將數據按從大到小順序排列後,在統計分布上具有明顯集中趨勢點的數值,代表數據的一般水平(眾數可以不存在或多於一個)。

修正定義:是一組數據中出現頻數最多的那個數值,用M。表示。
理性理解:簡單的說,就是一組數據中佔比例最多的那個數。

用眾數代表一組數據,可靠性較差,不過,眾數不受極端數據的影響,並且求法簡便。在一組數據中,如果個別數據有很大的變動,選擇中位數表示這組數據的「集中趨勢」就比較適合。

當數值或被觀察者沒有明顯次序(常發生於非數值性資料)時特別有用,由於可能無法良好定義算術平均數和中位數。例子:的眾數是橙。

方法:
首先定義一個結構體:
struct judgedata
{ ???? newdata;
int number;
};
struct judgedata judge[n];

其中,newdata是和 DATA 類型一致的數組.
1.判斷DATA[i]是否第一次出現(用for循環在數組judge[n]中尋找).
2.是就把他放入judge[j].newdata中(假設現在judge數組中有j-1個數),同時judge[j].number置1;
3.否的話,只需找到對應的data後,judge[?].number++就可以了。
4.找到judge[n].number的最大值,對應的judge[n].newdata就是要求的那個眾數。

『叄』 c語言眾數問題,while後面的scanf,看不懂,是要輸入x嗎

while(scanf("%d", &x)==1)確保讀入一個整數,否則終止循環,使用引用是為了調用者傳值

『肆』 如何用c語言求眾數

#include<stdio.h>

int main ()

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

scanf("%d",&n);

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

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

// printf("OK ");

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

for(j=0; j<n-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; i<n;)

{ 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; i<n; i++)

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

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

return 0;

}

『伍』 用C語言找眾數

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<stdio.h>
#include<stdlib.h>
#include<time.h>

constintN=10;

voidSort(inta[],intn){
inti,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;
}
}
}

voidShow(inta[],intn){
inti;
for(i=0;i<n;++i)
printf("%d",a[i]);
printf(" ");
}

intmain(){
inti,m,flag,imax;
inta[N],b[N];
srand((unsigned)time(NULL));
for(i=0;i<N;++i)//生成數組元素序列
a[i]=rand()%(1*N);
Sort(a,N);
Show(a,N);
b[0]=1;
for(i=1,m=0;i<N;++i){//統計各種大小數的個數
if(a[i]==a[i-1])++b[m];
elseb[++m]=1;
}
++m;
imax=0;
for(i=1;i<m;++i){//查找"眾數"的個數
if(b[i]>b[imax])
imax=i;
}
flag=1;
for(i=0;i<m&&flag;++i)//是否存在眾數?
if(b[i]==b[imax]&&i!=imax)
flag=0;
printf("%d ",flag?b[imax]:-1);
return0;
}

『陸』 C語言求眾數

#include<stdio.h>


int main()

{

int i,n,c,max=0,j,number;

int a[10];

scanf("%d",&n);

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

{

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

}

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

{

number=1;

for(j=0;j<n;j++)

{

if(a[j]==a[i])

{

number++;

}

if(max<number)

{

max=number;

c=a[i];

}

}

}

printf("該列數中眾數為: %d ",c);

return 0;


}

『柒』 C語言找眾數,我想的好復雜,不知道該怎麼想問題,運行結果也不對,就在此基礎上,怎麼改呀

// 初步測試可以實現, 可能還需要更改,重要的是思想。 自己動手完善一下吧。

// 下面用兩個數組實現,如果你知道結構體的話,建議用結構體實現

#define MAXNUM 100

int PosOfThisNum(int *arr, int nLen, int nNum)

{

for(int i = 0 ; i < nLen; i++)

{

if(arr[i] == nNum)

return i;

}

return -1;

}


int main(int argc, char *argv[])

{

int arr[MAXNUM] = {0};

int i = 0;

for(;i < MAXNUM; i++)

{

scanf("%d",&arr[i]);

if(getchar() == ' ')

break;

}


int arrNum[MAXNUM] = {0};

int arrTimes[MAXNUM] = {0};


// arrNum記錄所有的數

// arrTimes記錄所有數出現的次數

int nCount = 0;

int nPos = 0;

for(int j = 0; j <= i; j++)

{

nPos = PosOfThisNum(arrNum, nCount, arr[j]);

if(-1 == nPos)

{

arrNum[nCount] = arr[j];

arrTimes[nCount]++;

nCount++;

}

else

{

arrTimes[nPos]++;

}

}


// 根據次數排序arrNum和arrTimes兩個數組

int nTemp = 0;

int nMax = arrTimes[0];

for(int m = 0; m <= nCount; m++)

{

for(int n = m; n <= nCount; n++)

{

if(nMax < arrTimes[n])

{

nTemp = arrTimes[n];

arrTimes[n] = arrTimes[m];

arrTimes[m] = nTemp;


nTemp = arrNum[n];

arrNum[n] = arrNum[m];

arrNum[m] = nTemp;

}

}

}


// 輸出次數數組前n個最大的數

printf("該數組的眾數有:");

int r = 0;

for(; r < nCount; r++)

{

printf("%d ", arrNum[r]);

if(arrTimes[r] != arrTimes[r + 1])

break;

}

if(r == nCount)

{

printf("%d", arrNum[nCount]);

}


getchar();

}


熱點內容
雲伺服器12位ip 發布:2025-02-01 20:00:07 瀏覽:470
腳本微信取關 發布:2025-02-01 19:35:01 瀏覽:152
如何用雲伺服器部署svn 發布:2025-02-01 19:33:20 瀏覽:990
緩存迅雷 發布:2025-02-01 19:31:53 瀏覽:978
linux與unixshell編程指南 發布:2025-02-01 19:25:03 瀏覽:939
護膚品資料庫 發布:2025-02-01 19:25:02 瀏覽:648
python接受json數據 發布:2025-02-01 19:24:24 瀏覽:943
修改網站資料庫 發布:2025-02-01 19:02:16 瀏覽:423
果粉不換安卓怎麼辦 發布:2025-02-01 18:57:21 瀏覽:796
網頁卡需要什麼配置 發布:2025-02-01 18:50:30 瀏覽:136