题目描述
给定n个字符串,请对n个字符串按照字典序排列。
输入描述:
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
输出描述:
数据输出n行,输出结果为按照字典序排列的字符串。
示例1
输入
9
cap
to
cat
card
two
too
up
boat
boot
输出
boat
boot
cap
card
cat
to
too
two
up
分析
1.二维数组,对应字典;
2.冒泡法进行排序,N个数字,需要N-1轮排序,每轮依次减少一次交换。
3.点我查看strcmp;点我查看strcpy.
4.strcpy(temp,str[j+1]);注意不是strcpy(temp[j],str[j+1]),存储的是字符串,不是字符。
#include<stdio.h>
#include<string.h>
int main (void)
{
int n,i,j;
char temp[100];
scanf("%d",&n);
char str[n][100];
for(i=0;i<n;i++)
{
scanf("%s",&str[i]);
}
//冒泡法,需要n-1轮排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(strcmp(str[j],str[j+1]) > 0)
{
strcpy(temp,str[j+1]);
strcpy(str[j+1],str[j]);
strcpy(str[j],temp);
}
}
}
for(i=0;i<n;i++)
{
printf("%s\n",str[i]);
}
}