7-30 字符串的冒泡排序
我们已经知道了将
输入格式
输入在第1行中给出
输出格式
输出冒泡排序法扫描完第
输入样例
6 2
best
cat
east
a
free
day
输出样例
best
a
cat
day
east
free
分析与答案
和一般的数字冒泡排序是一样的思路,区别在于字符串的储存需要使用一个二维数组,排序使用string.h
中的strcmp
函数,交换则使用strcpy
函数。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char array[100][11];
char tmp[11];
int n,k,i,j;
scanf("%d %d",&n,&k);
for(i=0;i<n;i++){
scanf("%s",array[i]);
}
for(i=0;i<k;i++){
for(j=0;j<n-1-i;j++){
if(strcmp(array[j],array[j+1])>0){
strcpy(tmp,array[j]);
strcpy(array[j],array[j+1]);
strcpy(array[j+1],tmp);
}
}
}
for(i=0;i<n;i++){
printf("%s",array[i]);
if(i!=n-1)
printf("\n");
}
return 0;
}