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

时间:2014-03-30 19:22:21

标签: c

#include <stdio.h>
#include <string.h>

int main() {
    int num, i, j, result, index;
    char name[100][10]; 
    char temp[10];                 
    scanf("%d\n", &num);
    for(i = 0; i < num; i++)
        scanf("%s\n", 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)。因此,比较接下来的两个字母(aab abc)。
  • aab来到aaba之前。原因:aab中的前3个字母与aaba中的前3个字母相同,并且没有更多的字母可以与aaba进行比较。因此,长度较小的单词首先出现(aab)。

输入 - 第一行有'n',单词数,后跟n行,每行包含一个单词。

输出 - 按字母顺序排列的单词,每行一个。

约束:0&lt; n&lt; = 100,0&lt;每个单词的长度&lt; = 10

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

此程序可恢复在线挑战中的演示文稿错误

示例输入

2
world
hello

示例输出

hello
world

3 个答案:

答案 0 :(得分:1)

演示错误只是意味着您提供o / p的方式与robo评委的数据库不匹配。
只需通过在预期答案中犯一些错误,找出实际的o / p shold如何呈现,然后你就可以纠正它。

答案 1 :(得分:0)

首选动态分配。因为,如果用户需要输入超过100个单词或一个单词超过10个字符,他就不能。

提示:man 2 malloc

答案 2 :(得分:0)

#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("%s\n", name[i]);

}

printf("%s", name[i]);

return 0;

}