ios數(shù)組去重的方法 c語言:從鍵盤輸入10個(gè)數(shù)存放于數(shù)組中,求出這10個(gè)數(shù)的平均值、最大值及所在的位置,并輸出大于平均?
c語言:從鍵盤輸入10個(gè)數(shù)存放于數(shù)組中,求出這10個(gè)數(shù)的平均值、最大值及所在的位置,并輸出大于平均?//僅供參考#包括和ltstdio。H>int main(){double a[10],AVG,
c語言:從鍵盤輸入10個(gè)數(shù)存放于數(shù)組中,求出這10個(gè)數(shù)的平均值、最大值及所在的位置,并輸出大于平均?
//僅供參考#包括和ltstdio。H>int main(){double a[10],AVG,sum,maxvalue,int i,maxpos for(i=0,i< 10 i){scanf(%LF,&A[i])if(i==0){sum=a[i]maxvalue=a[i]maxpos=i}else{sum=a[i]if(maxvalue< a[i]){maxvalue=a[i]maxpos=i}}}AVG=sum/10.0 printf(“average value:Fn,AVG)printf(“maximum value:F,最大值的位置:Dn,maxvalue,maxpos)printf(“數(shù)值大于平均值:n”)for(I=0 I< 10 I){if(a[I]> AVG){printf(%f”,a[I])}}}}return 0}
一維數(shù)組循環(huán)移位不可靠,最好使用queue。queue函數(shù)的位置如下圖所示。具體思想如下:(1)在while循環(huán)外創(chuàng)建一個(gè)隊(duì)列引用來收集數(shù)據(jù),并將隊(duì)列大小設(shè)置為100。(2) 在循環(huán)中,使用“列中有損元素”將數(shù)據(jù)發(fā)送到隊(duì)列。(3) 獲取隊(duì)列的狀態(tài),取出隊(duì)列中的元素,并進(jìn)行平均。(4) 循環(huán)結(jié)束后,將數(shù)據(jù)釋放到while循環(huán)之外請(qǐng)參見下面的屏幕截圖,以獲取放置隊(duì)列的參考。使用“列中有損元素”可以確保當(dāng)隊(duì)列達(dá)到設(shè)置的大小時(shí),新輸入的數(shù)據(jù)將推出原始數(shù)據(jù)。例如,當(dāng)列出第101個(gè)元素時(shí),第一個(gè)元素將從隊(duì)列中清除。還有一種方法,看似比較簡單,但如果運(yùn)行時(shí)間長,可能會(huì)造成內(nèi)存泄漏,程序占用的內(nèi)存會(huì)越來越大。其思想是:(1)創(chuàng)建一個(gè)空數(shù)組,每次收集時(shí)向數(shù)組中添加數(shù)據(jù);(2)然后檢測(cè)數(shù)組的大小。如果數(shù)組的大小為<=100,則直接計(jì)算數(shù)組中數(shù)據(jù)的平均值。如果數(shù)組的大小大于100,請(qǐng)刪除第一個(gè)元素,然后計(jì)算平均值。如下圖所示。這兩種方法放在附件中。選一個(gè)你喜歡的
已經(jīng)有兩位專家回答了這個(gè)問題。我已經(jīng)跑了一段時(shí)間了。有時(shí)無法得到正確的結(jié)果;kaixingui2012無法運(yùn)行,提示類型錯(cuò)誤。我不知道為什么。也許我的版本有問題?我也做了一個(gè)。我覺得它運(yùn)轉(zhuǎn)得很好。請(qǐng)比較一下!#包括“stdio。H“double fun(double a[],int n,int*max,int*min)/*函數(shù)原型聲明:其中a是數(shù)組,n是數(shù)組元素的個(gè)數(shù),max指向最大個(gè)數(shù),min指向最小個(gè)數(shù),函數(shù)的返回值是平均值*/int main(){double B[10],aver int x,y=10,max=0,*ma=&max,min=0,*Mi=&min(x=0x)