c语言问题,国家名按首字母排序

#include<string.h>
#include<stdio.h>
#define MAX 10
main()
{
char str[MAX][100];
char hh[100];
int i,j,bx;
for(j=0;j<100;j++)
{scanf("%s",str[i][j]);
if(str[i][j])==13)
{i=i+1;
j=0;
if(i>MAX)
break;}}
for(bx=0;bx<MAX-1;bx++)
for(i=0;i<MAX-1-bx;i++)
for(j=0;j<100;j++)
if(strcmp(str[i+1][j]),str[i][j])>0)
{
strcpy(hh,str[i][100]);
strcpy(str[i+1][100],hh);
}
printf("排好后:\n");
for(i=0;i<10;i++)
for(j=0;j<100;j++)
printf("%s",str[i][j]);
getchar();
getchar();
getchar();
getchar();
getchar();
getchar();
}

这是我写的代码,基本思路是冒泡排序,可是编译过不去,求大能改进
这是我改进之后的,但还是有问题.........

第1个回答  2013-09-06
问题在交换:
for (i=0;i<MAX-1;i++)
for (j=i+1;j<MAX;j++)
{
if ( strcmp(str[j],str[i])>0 )
{strcpy(hh,str[i]); strcpy(str[i],str[j]);strcpy(str[j],hh);};
}
第2个回答  2013-09-06
scanf要传地址,&str[i][j]追问

........str我设的是char变量........

追答

str是数组,而str[i][j]才是char型的元素,代表值。还有strcpy()传的参数也是地址

相似回答
大家正在搜