输入描述:
输入有两行,第一行n 第二行是n个空格隔开的字符串
输出描述:
出一行排序输后的字符串,空格隔开,无结尾空格
输入例子1:
5 c d a bb e
输出例子1:
a bb c d e
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void swap(int* a,int* b){
int temp = *a;
*a = *b;
*b = temp;
}
int main(){
int n;
scanf("%d",&n);
int sort[n];
for(int i = 0; i < n; i++){
sort[i]=i;
}
char** str = (char**)malloc(sizeof(char*)*n);
char* temp = (char*)malloc(sizeof(char)*100);
int k = 0;
while(scanf("%s",temp) != EOF){
int len = strlen(temp);
str[k] = (char*)malloc(sizeof(char)*(len+1));
for(int i = 0; i < len; i++){
str[k][i] = temp[i];
}
k++;
}
for(int i = 0; i < n-1; i++){
for(int j =i+1; j < n; j++){
if(strcmp(str[sort[i]],str[sort[j]]) > 0){
swap(&sort[i], &sort[j]);
}
}
}
for(int i = 0; i < n-1; i++){
printf("%s ",str[sort[i]]);
}
printf("%s",str[sort[n-1]]);
return 0;
}