#include <stdio.h>
#include <string.h>
int main() {
int num, i, j, result, index;
char name[100][10];
char temp[10];
scanf("%dn", &num);
for(i = 0; i < num; i++)
scanf("%sn", name[i]);
for(i = 0; i < num; i++) {
index = i;
for(j = i + 1; j < num; j++) {
result = strcmp(name[index], name[j]);
if(result > 0)
index = j;
}
strcpy(temp, name[index]);
strcpy(name[index], name[i]);
strcpy(name[i], temp);
}
for(i = 0; i < num; i++) {
printf("%s", name[i]);
printf("n");
}
}
您将获得一组小写英文字母表上的单词。它们将按字母顺序排序。
字母顺序 :这是单词在字典或电话簿中的组织顺序。
例如
- ABC先于XAB。原因:第一个字母不同。因此,将它们进行比较。a 在英文字母表中排在 x 之前。
- AAB先于ABC。原因 : 第一个字母相同 (aab abc)。因此,接下来的 2 个字母进行比较(aab abc)。
- AAB先于AABA。原因:aab 中的前 3 个字母与 aaba 中的前 3 个字母相同,aab 中没有更多的字母可以与 aaba 进行比较。因此,长度较小的单词排在第一位(aab)。
输入 - 第一行有"n",即单词数,后跟 n 行,每行包含一个单词。
输出 - 按字母顺序排列的单词,每行一个。
约束 : 0
提示 : 看看二维数组如何提供帮助。
该程序恢复了在线挑战中的演示错误
示例输入
2
world
hello
示例输出
hello
world
演示错误仅表示您呈现 o/p 的方式与机器人裁判的数据库不匹配。
只需通过在预期答案中犯一些错误来找出实际的 o/p 应该如何呈现,然后您就可以纠正它。
#include <stdio.h>
#include <string.h>
int main(){
int num, i, j, result, index;
char name[100][11];
char temp[11];
scanf("%d", &num);
for(i = 0; i < num; i++)
scanf("%s", name[i]);
for(i = 0; i < num; i++)
{
index = i;
for(j = i + 1; j < num; j++)
{
result = strcmp(name[index], name[j]);
if(result > 0)
index = j;
}
strcpy(temp, name[index]);
strcpy(name[index], name[i]);
strcpy(name[i], temp);
}
enter code here
for(i = 0; i < num-1; i++)
{
printf("%sn", name[i]);
}
printf("%s", name[i]);
return 0;
}