c我在在线程序挑战编译器中遇到演示错误


#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 <=100, 0 <每个单词的长度><= 10

提示 : 看看二维数组如何提供帮助。

该程序恢复了在线挑战中的演示错误

示例输入

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;
}

最新更新