鱼C论坛

 找回密码
 立即注册
查看: 3370|回复: 1

[已解决]求大神帮我解个题。。。。。help

[复制链接]
发表于 2015-12-3 16:48:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入n个整数,将它们分别存入a数组a[0]~a[n-1]元素中,先求出这n个整数的平均值aver(保留整数部分,小数部分四舍五入),然后将n个数中≤aver的数从小到大排序存入a数组的前面部分,再将n个数中>aver的数从大到小排序存入a的后面部分,最后输出a数组中的n个数。
例如有9个数:3 10 8 17 4 9 6 9 5。计算可得到Aver=8,数3, 8, 4, 6, 5 ≤8,这5个数要升序排列,先输出;数10, 17, 9, 9>8,这4个数要降序排列,后输出;程序运行后输出3 4 5 6 8 17 10 9 9

【输入】
输入文件sort1.in有若干行,第1行是一个整数n(1≤n≤1000),接下来第2行开始是n个整数,每个整数用“空格”或“回车”隔开。

【输出】
输出文件sort1.out只有一行, n个整数按上述要求输出,每个整数前加一个空格。

【输入输出样例1】
sort1.in                                  sort1.out
9
3  10  8  17  4  9  6  9  5           3 4 5 6 8 17 10 9 9
最佳答案
2016-1-19 17:05:29
本帖最后由 yzyou521 于 2016-1-19 17:09 编辑
  1. #include <iostream>
  2. const int MAX=7;        //设置数组长度,也可使用循环确定

  3. void GetArray(int v[]);                //获取数组成员

  4. int GetEverage(int v[]);        //获取均值

  5. void BubbleSort(int v[]);        //冒泡排序

  6. void ResortNumber(int v[],int everages);        //重新排序

  7. int main()
  8. {
  9.         using namespace std;
  10.         int array[MAX];
  11.         int everage;
  12.         //以下调用函数
  13.         GetArray(array);
  14.         everage=GetEverage(array);
  15.         BubbleSort(array);
  16.         ResortNumber(array,everage);
  17.         //调用结束
  18.         return 0;
  19. }

  20. void GetArray(int v[])
  21. {
  22.         using namespace std;
  23.         cout<<"Please input numbers:"<<endl;
  24.         for(int i=0;i<MAX;i++)
  25.         {
  26.                 cin>>v[i];
  27.         }       
  28.         return;
  29. }

  30. int GetEverage(int v[])
  31. {
  32.         int sum=0;
  33.         int everage=sum/MAX;
  34.         for(int i=0;i<MAX;i++)
  35.         {
  36.                 sum=sum+v[i];       
  37.         }
  38.         return everage;       
  39. }

  40. void BubbleSort(int v[])
  41. {
  42.         int i,j,tmp;
  43.         for(i=0;i<MAX-1;i++)
  44.         {
  45.                 for(j=0;j<MAX-1-i;j++)
  46.                 {
  47.                         if(v[j]>v[j+1])
  48.                         {
  49.                                 tmp=v[j];
  50.                                 v[j]=v[j+1];
  51.                                 v[j+1]=tmp;
  52.                         }
  53.                 }
  54.         }
  55. }

  56. void ResortNumber(int v[],int everages)
  57. {
  58.         using namespace std;
  59.         int tmp1[MAX];
  60.         int tmp2[MAX];
  61.         int NewArray[MAX];
  62.         for(int i=0;i<MAX;i++)
  63.         {
  64.                 if(v[i]>everages)
  65.                 {
  66.                         tmp1[i]=v[i];
  67.                 }
  68.                 else
  69.                 {
  70.                         tmp1[i]=0;
  71.                 }
  72.         }
  73.         for(int j=0;j<MAX;j++)
  74.         {
  75.                 if(v[j]<=everages)
  76.                 {
  77.                         tmp2[j]=v[j];
  78.                 }
  79.                 else
  80.                 {
  81.                         tmp2[j]=0;
  82.                 }
  83.         }

  84.         利用冒泡法将tmp2[]中非零值降序排列,此步略,同BubbleSort函数

  85.         for(int l=0;l<MAX;l++ )
  86.         {
  87.                 NewArray[l]=tmp1[l]+tmp2[l];
  88.         }
  89.         for(int k=0;k<MAX;k++)
  90.         {
  91.                 cout<<NewArray[k]<<" ";
  92.         }
  93. }


复制代码


补充一下  你是要从文件读入  那么文件读入就需要使用循环来确定数组长度  
但是主要的思路不变   
纯手打
汗..  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-19 17:05:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yzyou521 于 2016-1-19 17:09 编辑
  1. #include <iostream>
  2. const int MAX=7;        //设置数组长度,也可使用循环确定

  3. void GetArray(int v[]);                //获取数组成员

  4. int GetEverage(int v[]);        //获取均值

  5. void BubbleSort(int v[]);        //冒泡排序

  6. void ResortNumber(int v[],int everages);        //重新排序

  7. int main()
  8. {
  9.         using namespace std;
  10.         int array[MAX];
  11.         int everage;
  12.         //以下调用函数
  13.         GetArray(array);
  14.         everage=GetEverage(array);
  15.         BubbleSort(array);
  16.         ResortNumber(array,everage);
  17.         //调用结束
  18.         return 0;
  19. }

  20. void GetArray(int v[])
  21. {
  22.         using namespace std;
  23.         cout<<"Please input numbers:"<<endl;
  24.         for(int i=0;i<MAX;i++)
  25.         {
  26.                 cin>>v[i];
  27.         }       
  28.         return;
  29. }

  30. int GetEverage(int v[])
  31. {
  32.         int sum=0;
  33.         int everage=sum/MAX;
  34.         for(int i=0;i<MAX;i++)
  35.         {
  36.                 sum=sum+v[i];       
  37.         }
  38.         return everage;       
  39. }

  40. void BubbleSort(int v[])
  41. {
  42.         int i,j,tmp;
  43.         for(i=0;i<MAX-1;i++)
  44.         {
  45.                 for(j=0;j<MAX-1-i;j++)
  46.                 {
  47.                         if(v[j]>v[j+1])
  48.                         {
  49.                                 tmp=v[j];
  50.                                 v[j]=v[j+1];
  51.                                 v[j+1]=tmp;
  52.                         }
  53.                 }
  54.         }
  55. }

  56. void ResortNumber(int v[],int everages)
  57. {
  58.         using namespace std;
  59.         int tmp1[MAX];
  60.         int tmp2[MAX];
  61.         int NewArray[MAX];
  62.         for(int i=0;i<MAX;i++)
  63.         {
  64.                 if(v[i]>everages)
  65.                 {
  66.                         tmp1[i]=v[i];
  67.                 }
  68.                 else
  69.                 {
  70.                         tmp1[i]=0;
  71.                 }
  72.         }
  73.         for(int j=0;j<MAX;j++)
  74.         {
  75.                 if(v[j]<=everages)
  76.                 {
  77.                         tmp2[j]=v[j];
  78.                 }
  79.                 else
  80.                 {
  81.                         tmp2[j]=0;
  82.                 }
  83.         }

  84.         利用冒泡法将tmp2[]中非零值降序排列,此步略,同BubbleSort函数

  85.         for(int l=0;l<MAX;l++ )
  86.         {
  87.                 NewArray[l]=tmp1[l]+tmp2[l];
  88.         }
  89.         for(int k=0;k<MAX;k++)
  90.         {
  91.                 cout<<NewArray[k]<<" ";
  92.         }
  93. }


复制代码


补充一下  你是要从文件读入  那么文件读入就需要使用循环来确定数组长度  
但是主要的思路不变   
纯手打
汗..  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 19:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表