数组a中每个元素包含两个值第一个是整型第二个是字符串写一个sort函数以第一个值为键按从小到大排序
2015-03-27 00:00
519 查看
摘要: 数组a中每个元素包含两个值,第一个是整型,第二个是字符串,写一个sort函数,以第一个值[int]为键对数组按照从小到大进行排序。
最近某某公司网上笔试有这么一个题目,本人有幸参加了,但是当时纠结没有写出来,尤其纠结这个数组要怎么表示,当时没想过要自己重新定义结构体啊!!!丢人!!现在拿出来再丢丢脸,希望下次长点记性。
【题目:】
又收到在线笔试通知,于是兴起,认真的做做,告诫自己!!
C/C++源代码如下:
最近某某公司网上笔试有这么一个题目,本人有幸参加了,但是当时纠结没有写出来,尤其纠结这个数组要怎么表示,当时没想过要自己重新定义结构体啊!!!丢人!!现在拿出来再丢丢脸,希望下次长点记性。
【题目:】
数组a中每个元素包含两个值,第一个是整型,第二个是字符串,写一个sort函数,以第一个值[int]为键对数组按照从小到大进行排序。
数组?啥数组还能是一个元素包含整数和字符串的啊??当时就不知道这个数组怎么定义了,想想真是丢人。。。。又收到在线笔试通知,于是兴起,认真的做做,告诫自己!!
C/C++源代码如下:
#include "stdafx.h" #include <iostream> using namespace std; //define the STRUCT struct BMW{ int x; char a[100]; }; //Get the length of Array template <class T> int getArrayLen(T& array){ return (sizeof(array) / (sizeof(array[0]))); } //************ sort1:Param1:struct BMW p[] Param: int N 。************// struct BMW *sort1(struct BMW p[],int N){ struct BMW tmp; for(int i=0;i<N;i++){ for(int j=i+1;j<N;j++){ if(p[i].x>p[j].x){ tmp=p[i]; p[i]=p[j]; p[j]=tmp; } } } return p; } //************ sort2: Param:struct BMW wmb[] ************// struct BMW *sort2(struct BMW wmb[]){ int N=0; N = getArrayLen(wmb); struct BMW tmp; for(int i=0;i<N;i++){ for(int j=i+1;j<N;j++){ if(wmb[i].x>wmb[j].x){ tmp=wmb[i]; wmb[i]=wmb[j]; wmb[j]=tmp; } } } return wmb; } //TEST int _tmain(int argc, _TCHAR* argv[]) { BMW Ary[]={{14,"wmb007@126.com"},{6,"love"},{22,"WeChat ID:FZUXMUBMW"},{8,"Y.L"},{9,"& X.L"},{5,"I really"},{17,"http://weibo.com/wangmb007"}}; BMW *SortAry = sort1(Ary,getArrayLen(Ary)); BMW *SortAry1 = sort2(Ary); for (int i = 0; i < getArrayLen(Ary); i++) { printf("%d,%s;\n",SortAry[i].x,SortAry[i].a); } for (int i = 0; i < getArrayLen(Ary); i++) { printf("%d,%s;\n",SortAry1[i].x,SortAry1[i].a); } }
相关文章推荐
- 华为机试题:输入两个超长整型构成的字符串,其间使用一个空格分隔,每个字符串最大长度为100个字符。求第一个整数除以第二个整数以后的余数。。
- 算法导论9.3-8-设X[1..n]和Y[1..n]为两个数组,每个都包含n个已排好序的数,给出一个求数组X和数组Y中所有2n个元素的中位数
- 创建一个字符串数组,总共5个元素,每个元素最多保存30个字符,写一个函数排序整个数组。
- 个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出
- 1.编写一个名称为MyClass一个类,在该类中编写一个方法,名称为CountChar,返回值为整型,参数两个,第一个参数可以是字符串、整数、单精度、双精度,第二个参数为字符,方法功能返回第二个参数在
- 编写一个程序,输入两个包含 5 个元素的数组,先将两个数组升序排序,然 后将这两个数组合并成一个升序数组(合并排序)。
- 创建一个字符串数组,总共5个元素,每个元素最多保存30个字符,写一个函数排序整个数组。
- c#--编写一个名称为MyClass一个类,在该类中编写一个方法,名称为CountChar,返回值为整型,参数两个,第一个参数可以是字符串、整数、单精度、双精度,第二个参数为字符,方法功能返回第二个参
- 编写一个程序,创建两个8元素的double数组,第一个数组有用户键入8个值,第二个为第一个的累积,例如,第二个数组的第四个元素应该等于第一个数组的前四个元素之和
- git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符'0
- 编写一个函数 接受两个字符串参数 如果 第一个参数被第二个包含 则输出第一个参数的首字符(图)
- 两个数组 [n] [m] n>m 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- php把一个字符串分割成字符数组(可以用参数指定数组每个元素字符的长度)
- 【1】 设一个长度为10的整型数组,  0)要求每个元素的值通过scanf输入,输入完成后,  1)请顺序输出这些整数,  2)请倒序输出这些整数,  3)输出这些数中的最大值,最小值
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型数组排序,使得按序拼接数组各元素得到的值最小。
- 求k个数组包含每个数组至少一个元素的最小范围(待字闺中,备忘)
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序