| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2944 人关注过本帖
标题:[讨论]同济05级期末上机第二题
只看楼主 加入收藏
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
 问题点数:0 回复次数:52 
[讨论]同济05级期末上机第二题

现有若干个集合的数据,每个数据集合可以自选一个指标参加排序。这些指标包含如下四种:

  • Min,取集合中元素的最小值
  • Max,取集合中元素的最大值
  • Mean,取集合中元素的平均值,平均值的计算公式为:(V1+V2+…+Vn) / n
  • Median,取集合中元素的中值,中值的计算公式为:(Vmin+Vmax) / 2

读入数据后,请根据各个集合选择的指标对这些集合进行降序排列,每个集合内的元素请升序排列。

输入

每行一个集合。[]内为该集合选取的用于集合间排序的指标。随后为集合内各个元素,元素个数不定,以空格分隔。

输出

每行输出一个集合。{} 内为计算出该集合的排序指标值,随后为该集合的各个元素的升序排列。
测试用例 0
测试输入
[Max]8 3 15
[Min]9 10 1 2 7
[Median]2 4
[Mean]30 20 10

期待的输出
{20}10 20 30
{15}3 8 15
{3}2 4
{1}1 2 7 9 10
测试用例 1
[Mean]88888
期待的输出
{88888}88888

[此贴子已经被作者于2006-12-11 13:45:51编辑过]

搜索更多相关主题的帖子: 同济 上机 
2006-12-02 10:03
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
同济计算机很强吗?
2006-12-02 15:43
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
题倒是很难
2006-12-02 19:22
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
题难度还是可以的,因为毕竟是大学了.

二叉排序树 就是一个简单的堆排序

集合排序 也是排序类问题

配料员 可以用图论解决

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-12-02 19:49
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
简单吗?
2006-12-02 20:29
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
哈哈
跟我们老师说的一样
老师懒得出题
出三道省事

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-12-02 22:54
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 

不会啊

2006-12-03 19:27
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
收藏
得分:0 

只会一道题

2006-12-03 20:34
yelo20053533
Rank: 1
等 级:新手上路
帖 子:161
专家分:0
注 册:2006-11-27
收藏
得分:0 
贴出来看看
2006-12-03 20:38
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
收藏
得分:0 
# include<stdio.h>
# include<string.h>
void max(int *a,int b);
void min(int *a,int b);
void mean(int *a,int b);
void median(int *a,int b);
void sort(int *a,int b);
char *ch[4]={"[max]","[min]","[mean]","[median]"};
main()
{
int a[4][10],n,b[10];
char op[4][10];
void (*p[4])(int*,int);
int i=0,j=0,k=0,t=0,h=0,m=0,v=1;
p[0]=max;
p[1]=min;
p[2]=mean;
p[3]=median;
printf("请输入要测试的集合数目: ");
scanf("%d",&n);
while(i<n)
{
printf("请输入你要测试的方式(用中括号括起来): ");
scanf("%s",op[k]);
printf("请输入测试的第");
printf("%d",v++);
printf("个集合的元素个数: ");
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
}
b[h]=j;
j=0;
++i;
++k;
h++;
m=0;
}
i=0;
for(i=0;i<n;i++)
{
k=0;
t=0;
while(k<4)
{
if((strcmp(op[i],ch[k++]))==0)
{
t=k-1;
break;
}
}
p[t](a[i],b[i]);
}
}
void sort(int *a,int b)
{
int i=0,j,temp;
for(i=0;i<b-1;i++)
for(j=i+1;j<b;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void max(int *a,int b)
{
int m,i;
sort(a,b);
m=a[b-1];
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void min(int *a,int b)
{
int m,i;
sort(a,b);
m=a[0];
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void mean(int *a,int b)
{
int i;
int average=0,sum=0;
sort(a,b);
for(i=0;i<b;i++)
sum=sum+a[i];
average=sum/b;
printf("{");
printf("%d",average);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
void median(int *a,int b)
{
int m;
int i;
sort(a,b);
m=(a[0]+a[b-1])/2;
printf("{");
printf("%d",m);
printf("}");
for(i=0;i<b;i++)
printf("%d ",a[i]);
printf("\n");
}
这是第二题,,写的有点粗糙,望各位大虾多多指教,,,
2006-12-04 12:33
快速回复:[讨论]同济05级期末上机第二题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023088 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved