求小範圍的眾數
雖然陣列基本使用方式不難理解,但經過多種不同條件題目的練習,體會到困難的地方在於運用方式,其實解一個問題每個人都有不同見解,但結論都是要符合條件,讓自己可以更有效率且撰寫得更清楚明白,是需要多多省思的,下面題目雖然不難,解法也有很多種,如何靈活運用陣列特性來解決,才是多練習的其中一個大目的。
輸入10組個位數,求小範圍的眾數(相同時取大者為解)
e.g:1,3,9,7,3,8,6,8,2,2,ANS=8(8>3>2)
#include<stdio.h>
int main(){
int g[10]={0};//陣列g的[10]分別為0~9,我們可以利用它的編號(也就是
int i,n; //輸入的個位數)與內容關係來取的答案。姑且用n當作代
for(i=1;i<=10;++i){ //號來靈活運用
scanf("%d",&n);
g[n]++;
}
int ans=0; //暫時為最眾
for(n=1;n<10;++n){ //輸入1~9數值分別存在n數裡(1有x個....2有x個....)
if(g[n]>=g[ans]){
ans=n;
}
}
printf("%d\n",ans);
return 0;
}
輸入10組個位數,求小範圍的眾數(相同時取大者為解)
e.g:1,3,9,7,3,8,6,8,2,2,ANS=8(8>3>2)
#include<stdio.h>
int main(){
int g[10]={0};//陣列g的[10]分別為0~9,我們可以利用它的編號(也就是
int i,n; //輸入的個位數)與內容關係來取的答案。姑且用n當作代
for(i=1;i<=10;++i){ //號來靈活運用
scanf("%d",&n);
g[n]++;
}
int ans=0; //暫時為最眾
for(n=1;n<10;++n){ //輸入1~9數值分別存在n數裡(1有x個....2有x個....)
if(g[n]>=g[ans]){
ans=n;
}
}
printf("%d\n",ans);
return 0;
}
留言
張貼留言