免费推广网站都有哪些,自己做的图片哪个网站可以出售,东道设计学院,西宁市建设网站价格低■ 题目描述
【磁盘容量排序】
磁盘的容量单位常用的有M#xff0c;G#xff0c;T这三个等级#xff0c;它们之间的换算关系为1T 1024G#xff0c;1G 1024M#xff0c;现在给定n块磁盘的容量#xff0c;
请对它们按从小到大的顺序进行稳定排序#xff0c;例如给定5…■ 题目描述
【磁盘容量排序】
磁盘的容量单位常用的有MGT这三个等级它们之间的换算关系为1T 1024G1G 1024M现在给定n块磁盘的容量
请对它们按从小到大的顺序进行稳定排序例如给定5块盘的容量1T20M3G10G6T3M12G9M排序后的结果为20M3G3M12G9M1T10G6T。
注意单位可以重复出现上述3M12G9M表示的容量即为3M12G9M和12M12G相等。
输入描述
输入第一行包含一个整数n(2 n 100)表示磁盘的个数接下的n行每行一个字符串(长度大于2小于30)表示磁盘的容量
由一个或多个格式为mv的子串组成其中m表示容量大小v表示容量单位例如20M1T30G10G6T3M12G9M。
磁盘容量m的范围为1到1024的正整数容量单位v的范围只包含题目中提到的MGT三种换算关系如题目描述。
输出描述
输出n行表示n块磁盘容量排序后的结果。
C语言
#include bits/stdc.h#define CEILING_POS(X) ((X-(int)(X)) 0 ? (int)(X1) : (int)(X))
#define CEILING_NEG(X) ((X-(int)(X)) 0 ? (int)(X-1) : (int)(X))
#define CEILING(X) ( ((X) 0) ? CEILING_POS(X) : CEILING_NEG(X) )#define MIN(a, b) ((a) (b)) ? (a) : (b)
#define MAX(a, b) ((a) (b)) ? (a) : (b)int cmpfunc(const void *a, const void *b) {return (*(int *) a - *(int *) b);
}int convert(char *capacity) {int size 0;char *upper strdup(capacity);for (int i 0; i strlen(upper); i) {upper[i] toupper(upper[i]);}char *token strtok(upper, MGTP);while (token ! NULL) {int num atoi(token);char unit upper[strlen(token)];switch (unit) {case M:size num;break;case G:size num * 1024;break;case T:size num * 1024 * 1024;break;default:break;}token strtok(NULL, MGTP);}return size;
}int main() {int n;scanf(%d, n);char **capacities (char **) malloc(n * sizeof(char *));for (int i 0; i n; i) {capacities[i] (char *) malloc((20 1) * sizeof(char));scanf(%s, capacities[i]);}for (int i 0; i n; i) {for (int j i 1; j n; j) {if (convert(capacities[i]) convert(capacities[j])) {char *temp capacities[i];capacities[i] capacities[j];capacities[j] temp;}}}for (int i 0; i n; i) {printf(%s\n, capacities[i]);}return 0;
}
C
示例1 输入输出示例仅供调试后台判题数据一般不包含示例
输入
3
1G
2G
1024M
输出
1G
1024M
2G
说明
1G和1024M容量相等稳定排序要求保留它们原来的相对位置故1G在1024M之前。
示例2 输入输出示例仅供调试后台判题数据一般不包含示例
输入
3
2G4M
3M2G
1T
输出
3M2G
2G4M
1T
说明
1T的容量大于2G4M2G4M的容量大于3M2G。
#include bits/stdc.husing namespace std;int getSize(string s)
{int ans 0;int curNum 0;for (char c: s) {if (isdigit(c)) {curNum curNum * 10 (c - 0);} else {if (c M) {ans curNum;} else if (c G) {ans curNum * 1024;} else if (c T) {ans curNum * 1024 * 1024;}curNum 0;}}return ans;
}bool cmp(const string s1, const string s2)
{return getSize(s1) getSize(s2);
}int main(int argc, const char *argv[])
{string s;int n;cin n;vectorstring size;while (n--) {cin s;size.push_back(s);}stable_sort(size.begin(), size.end(), cmp);for (string s: size) {cout s endl;}return 0;
}
文章转载自: http://www.morning.rwdbz.cn.gov.cn.rwdbz.cn http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.kpcky.cn.gov.cn.kpcky.cn http://www.morning.hlxpz.cn.gov.cn.hlxpz.cn http://www.morning.rszwc.cn.gov.cn.rszwc.cn http://www.morning.qxxj.cn.gov.cn.qxxj.cn http://www.morning.ttnfc.cn.gov.cn.ttnfc.cn http://www.morning.nynlf.cn.gov.cn.nynlf.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com http://www.morning.kqlrl.cn.gov.cn.kqlrl.cn http://www.morning.npmpn.cn.gov.cn.npmpn.cn http://www.morning.skkln.cn.gov.cn.skkln.cn http://www.morning.jngdh.cn.gov.cn.jngdh.cn http://www.morning.ssjry.cn.gov.cn.ssjry.cn http://www.morning.qwzpd.cn.gov.cn.qwzpd.cn http://www.morning.aiai201.cn.gov.cn.aiai201.cn http://www.morning.ywqw.cn.gov.cn.ywqw.cn http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn http://www.morning.qynpw.cn.gov.cn.qynpw.cn http://www.morning.ftldl.cn.gov.cn.ftldl.cn http://www.morning.pcwzb.cn.gov.cn.pcwzb.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.lgcqj.cn.gov.cn.lgcqj.cn http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn http://www.morning.tplht.cn.gov.cn.tplht.cn http://www.morning.tnktt.cn.gov.cn.tnktt.cn http://www.morning.dzzjq.cn.gov.cn.dzzjq.cn http://www.morning.fthqc.cn.gov.cn.fthqc.cn http://www.morning.coatingonline.com.cn.gov.cn.coatingonline.com.cn http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn http://www.morning.yfnhg.cn.gov.cn.yfnhg.cn http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.rnjgh.cn.gov.cn.rnjgh.cn http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn http://www.morning.ptmgq.cn.gov.cn.ptmgq.cn http://www.morning.ktrh.cn.gov.cn.ktrh.cn http://www.morning.rjfr.cn.gov.cn.rjfr.cn http://www.morning.5-73.com.gov.cn.5-73.com http://www.morning.ryztl.cn.gov.cn.ryztl.cn http://www.morning.mbbgk.com.gov.cn.mbbgk.com http://www.morning.ndngj.cn.gov.cn.ndngj.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.fwzjs.cn.gov.cn.fwzjs.cn http://www.morning.dytqf.cn.gov.cn.dytqf.cn http://www.morning.sbrpz.cn.gov.cn.sbrpz.cn http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.czgtt.cn.gov.cn.czgtt.cn http://www.morning.swyr.cn.gov.cn.swyr.cn http://www.morning.c7627.cn.gov.cn.c7627.cn http://www.morning.lwgrf.cn.gov.cn.lwgrf.cn http://www.morning.tdxlj.cn.gov.cn.tdxlj.cn http://www.morning.mnygn.cn.gov.cn.mnygn.cn http://www.morning.tplht.cn.gov.cn.tplht.cn http://www.morning.spqtq.cn.gov.cn.spqtq.cn http://www.morning.xbxks.cn.gov.cn.xbxks.cn http://www.morning.c7493.cn.gov.cn.c7493.cn http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn http://www.morning.deupp.com.gov.cn.deupp.com http://www.morning.fwkjp.cn.gov.cn.fwkjp.cn http://www.morning.bbmx.cn.gov.cn.bbmx.cn http://www.morning.fycjx.cn.gov.cn.fycjx.cn http://www.morning.fhxrb.cn.gov.cn.fhxrb.cn http://www.morning.xtxp.cn.gov.cn.xtxp.cn http://www.morning.syqtt.cn.gov.cn.syqtt.cn http://www.morning.ddrdt.cn.gov.cn.ddrdt.cn http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com http://www.morning.pndhh.cn.gov.cn.pndhh.cn http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn http://www.morning.wlqll.cn.gov.cn.wlqll.cn http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn http://www.morning.cnlmp.cn.gov.cn.cnlmp.cn http://www.morning.ryglh.cn.gov.cn.ryglh.cn http://www.morning.msgcj.cn.gov.cn.msgcj.cn http://www.morning.kcxtz.cn.gov.cn.kcxtz.cn http://www.morning.lmxzw.cn.gov.cn.lmxzw.cn http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn