题目 对输入的字符串进行排序后输出
输入 第一行n,第二行n个字符串,字符串之间用空格隔开
输出 一行排序后的字符串
#include <stdio.h>
#include <string.h>
int main() {
int num;
scanf("%d",&num);
char a[10];
for(int i=0;i<num;i++){
scanf("%s",&a[i]); //输入数组
}
for(int i=0;i<num;i++){
for(int j=i+1;j<num;j++){
char s;
if(strcmp(a[i],a[j])>0){
strcpy(s, a[i]);
strcpy(a[i], a[j]);
strcpy(a[j], s);
}
}
}
for(int i=0;i<num;i++){
printf("%s",a[i]); //输出数组
}
return 0;
}
我这代码好繁琐,但是逻辑是对的吧,我觉得。
看了别人的代码,真精简
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int n;
scanf("%d",&n);
char a[n][100];
int num=0;
while(scanf("%s",&a[num])!=EOF){
num++;
}//先全部输入完再进行排序
qsort(a,n,sizeof(a[0]),strcmp);
for(int i=0;i<n;i++){
printf("%s ",a[i]);
}
return 0;
}
原来库里有这个函数啊
我还是想知道我错在了哪?