基础练****数列排序 时间限制: 内存限制:,将这个数列按从小到大的顺序排列。1<=n<=200输入格式第一行为一个整数n。第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式输出一行,按从小到大的顺序输出排序后的数列。样例输入583649样例输出34689锦囊1使用排序算法。锦囊2可以使用冒泡排序、排入排序等,也可以使用快速排序等更快的,还可以直接调用系统的函数。#include<>#include<>voidPrint(int*data,intn){ inti; for(i=0;i<n;i++) { printf("%d",data[i]); } printf("\n");}intSplit(int*data,intpre,intrear){ intvalue=data[pre]; while(pre<rear) { while(data[rear]>=value&&pre<rear)rear--; data[pre]=data[rear]; while(data[pre]<value&&pre<rear)pre++; data[rear]=data[pre]; } data[pre]=value; returnpre;}//快速排序voidQuickSort(int*data,intpre,intrear){ if(pre<rear) { intmid=Split(data,pre,rear); QuickSort(data,pre,mid-1); QuickSort(data,mid+1,rear); }}intmain(){ inti; intn; int*data; scanf("%d",&n); data=(int*)malloc(sizeof(int)*n); for(i=0;i<n;i++) { scanf("%d",&data[i]); } QuickSort(data,0,n-1); Print(data,n); return0;}基础练****十六进制转八进制 时间限制: 内存限制:,输出它们对应的八进制数。输入格式输入的第一行为一个正整数n(1<=n<=10)。接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式输出n行,每行为输入对应的八进制正整数。注意输入的十六进制数不会有前导0,比如012A。输出的八进制数也不能有前导0。样例输入239123ABC样例输出714435274提示先将十六进制数转换成某进制数,再由某进制数转换成八进制。锦囊1使用二进制。锦囊2先把十六进制转成二进制,每位十六进制正好转成4位二进制,然后再将二进制转成八进制,每三个二进制转成一个八进制。#include<>#include<>#include<>#defineMaxSize100000voidsaveB(char*b,charc3,charc2,charc1,charc0,intstart){ b[start]=c3; b[start+1]=c2; b[start+2]=c1; b[start+3]=c0;}inthtob(char*h,char*b){ inti,j; inthl=strlen(h); for(i=0;i<hl;i++) switch(h[i]) { case'0': { saveB(b,'0','0','0','0',4*i); break; } case'1': { saveB(b,'0','0','0','1',4*i); break; } case'2': { saveB(b,'0','0','1','0',4*i); break; } case'3': { saveB(b,'0','0','1','1',4*i); break; } case'4': { saveB(b,'0','1','0','0',4*i); break; } case'5': { saveB(b,'0','1','0','1',4*i); break; } case'6': { saveB(b,'0','1','1','0',4*i); break; } case'7': { saveB(b,'0','1','1','1',4*i); break; } case'8': { saveB(b,'1','0','0','0',4*i); break; } case'9': { saveB(b,'1','0','0','1',4*i); break; } c
蓝桥杯练习题库2基础练习题含参考代码分析 来自淘豆网www.taodocs.com转载请标明出处.