网站大量收购闲置独家精品文档,联系QQ:2885784924

考研计算机复试上机..doc

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
考研计算机复试上机.

题目描述 输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。 输入 输入第一行包括1个整数N,1=N=1000,代表输入数据的个数。 接下来的一行有N个整数。 输出 可能有多组测试数据,对于每组数据, 第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。 第二行将排序的结果输出。 样例输入 4 1 3 4 2 样例输出 4 1 2 3 ? #includeiostream using namespace std; typedef int ElemType; #define MAX 1000 //运行输入的数据的最大数目 void SpecialSort(ElemType *array,int num);//进行特殊排序,num为数据的数目 void Print(ElemType *array,int num);//打印结果 int main() { ?ElemType array[MAX]; ?int n;//数据的数目 ?do ?{ ??? ?coutInput the number of elements:; ??? ?cinn; ?}while(n1||nMAX); ?coutInput n elements:endl; ?for(int i=0;in;++i) cinarray[i]; ?SpecialSort(array,n); ?Print(array,n); ?return 0; } void SpecialSort(ElemType *array,int num) { ?//直接插入排序 ?for(int i=1;inum;++i) ??if(array[i]array[i-1])//后面的比前面的数据小就进行挪动数据 ??{ ???ElemType tmp=array[i]; ???for(int j=i-1;j=0array[j]tmp;--j) ????array[j+1]=array[j]; ???array[j+1]=tmp; ??} ?--num;//num减1,实际上最大的数据还是存在的 } void Print(ElemType *array,int num) { ?cout\nMaximum Element:array[num]endl; ?coutElements ordered by descend:endl; ?for(int i=0;inum;++i) ??coutarray[i] ; ?coutendl; } 1187: 最小年龄的3个职工 时间限制: 1 Sec 内存限制: 32 MB 提交: 45 解决: 17 题目描述 职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。 输入 输入第一行包括1个整数N,1=N=30,代表输入数据的个数。 接下来的N行有N个职工的信息: 包括职工号(整数), 姓名(字符串,长度不超过10),年龄(1=age=100)。 输出 可能有多组测试数据,对于每组数据, 输出结果行数为N和3的较小值,分别为年龄最小的职工的信息。 关键字顺序:年龄工号姓名,从小到大。 样例输入 5 501 Jack 6 102 Nathon 100 599 Lily 79 923 Lucy 15 814 Mickle 65 样例输出 501 Jack 6 923 Lucy 15 814 Mickle 65 #include IOSTREAM using namespace? std; const int N=30; ? typedef struct Worker { ?int No;//职工号 ?char name[30];//姓名 ?int age;//年龄 ?Worker()//无参的构造函数 ?{ ??No=0; ??memset(name,30,0); ??age=0; ?} ?// 设置参数 ?void Set(int p1,char* p2,int p3) ?{ ??No=p1; ??strcpy(name,p2); ??age=(p30p3=100)?p3:0; ?} }Worker; ? //按照职工的年龄排序,只排出n个中的最小3个就停止 // 针对数据量很大的信息,最好用堆排序 // 数据量小的话,用冒泡或者简单选择排序就可行了 void SortByAge(Worker *p,int n); void Swap(Worker *p,Worker *q);//两个职工交换位置 void Print(Worker *p,int n);//输出年龄最小的3个职工信息 ? ? //到处是指针对吧! //这就到处程序的可读性不好了,主要是想练练手 //指针很神奇的,学C/C++的

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档