//对一个大型数组进行排序 #include<iostream> #include<iomanip> using namespace std; void mean(const int[],int);//数组及平均数 void median(int[],int);//中间数 void made(int[],int[],int);//出现最多次数的那个数 void bubbleSort(int[],int);//排序 void printArray(const int[],int);//打印数组。 int main() { const int resp=99; int frequency[10]={0};//各个数出现次数 int response[resp]={2,3,6,5,9,5,6,2,3,6, 5,2,4,7,8,5,9,5,2,3, 6,2,1,4,6,8,9,7,5,6, 4,5,6,8,6,7,9,5,7,9, 4,5,8,9,5,4,6,7,8,9, 4,5,6,8,7,6,5,4,8,9, 4,5,6,7,8,9,5,4,6,8, 8,6,9,6,5,4,8,5,6,7, 4,5,7,8,9,6,4,5,8,4, 4,5,6,7,8,8,6,6,4};//一个包含99个数的大型数组 bubbleSort(response,resp);//调用排序函数 mean(response,resp);//调用平均函数 median(response,resp);//调用中间函数 made(frequency,response,resp);//调用出现最多数的函数 return 0; } void mean(const int answer[],int ArraySize)//mean函数定义 { int total=0; cout<<"***********/n mean函数,总和和平均数/n*************"<<endl; for(int i=0;i<ArraySize;i++) total += answer[i]; cout<<"mean函数表示先将response总和打出来,再计算平均数"<<endl; cout<<"总和为"<<total<<endl; cout<<"平均数为" <<static_cast<double>(total)/ArraySize<<endl;//强制转换为double型 } void bubbleSort(int a[],int size)//对数组进行排序 { int hold; for(int i=0;i<size-1;i++) { for(int j=0;j<size-1;j++) { if(a[j]>a[j+1]) { hold=a[j]; a[j]=a[j+1]; a[j+1]=hold; } } } } void printArray(const int Ar[],int size)//打印数组 { for(int i=0;i<size;i++) { if(i%20==0) cout<<endl;//每二十个数空一行 cout<<Ar[i]; } } void median(int answer[],int size)//median函数定义,中间数 { cout<<"/n/n/n/n************/n median函数,中间数/n*************"<<endl; cout<<"未排序前的数组是"<<endl; printArray(answer,size); bubbleSort(answer,size); cout<<"排序后的数组是"<<endl; printArray(answer,size); cout<<"中间数是在"<<size<<"个成员数中的第"<<size/2<<"个数"<<endl <<"在此数组中,中间数是" <<answer[size/2]<<endl; } void made(int freq[],int answer[],int size)//出现最多次数的那个数 { int largest=0;//出现最多次数的那个数 int made=0; cout<<"/n/n/n/n***********/n出现最多次数的那个数/n************/n"; for(int i=1;i<=9;i++) freq[i]=0;//初始化出现次数函数各个成员为0 for(int j=0;j<size;j++) ++freq[answer[j]];//把各数出现的次数写进freq; for(int k=1;k<=9;k++) { cout<<setw(5)<<k<<setw(10)<<freq[k]<<" ";//用表格输出fraq中的成员,即各个数出现的个数 for(int x=1;x<=freq[k];x++) cout<<"*"; cout<<endl;//用星号输出个数 if(freq[k]>largest)//出现最多的那个数 { largest=freq[k]; made=k; } } cout<<"出现最多次数的那个数是"<<made<<"它一共出现了"<<largest<<"次"<<endl; } 唉,真是有点复杂,脑子要短路了,写之前一定要理清思路,一个个爆破