我试图通过传递参数的字母顺序排列数组字符串,但是它显示了一些错误。
字符串输入:C C ++ Java PHP Python Perl Ruby R JavaScript PHP
所需的输出:C C ++ Java JavaScript PHP PHP PHP Perl Python R Ruby
我已经尝试过:
void lexi(char str[]){
int i,j;
for(i=0; i<9; i++){
for(j=i+1; j<10 ; j++)
{
if(strcmp(str[i], str[j])>0)
{
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
}
int main()
{
int i;
char str[10][50], temp[50];
for(i=0; i<10; i++)
scanf("%s",str[i]);
lexi(str);
for(i=0; i<10; i++)
{
printf("%s",str[i]);
}
return 0;
}
答案 0 :(得分:1)
在对main函数lexi()的调用中,您正在传递数组str。
lexi(str);
但是,在您的定义中,str缺失。该代码甚至无法编译。
void lexi(){
...
}
编译器还会抱怨许多其他错误。对于从scanf读取的字符串,最好使用malloc数组。您还需要了解字符数组和字符串之间的区别。它们不一样。您还必须了解变量的范围。