【求助】看看哪里错了
#include<stdio.h>
#include<string.h>
#define N 10
#define M 3
void main()
{
char str[M][N]={"China","Australia","Canada"};
int j,s=0;
for(j=0;j<3;j++)
if(strcmp(str[j][N],str[j+1][N])>0)
{s=str[j][N];str[j][N]=str[j+1][N];str[j+1][N]=s;}
for(j=0;j<3;j++)
puts(str[j][N]);
}
题目要求的是
有3个国家名,要求按字母先后顺序排列,并且按顺序输出!!
----------------解决方案--------------------------------------------------------
if(strcmp(str[j][N],str[j+1][N])>0)
{s=str[j][N];str[j][N]=str[j+1][N];str[j+1][N]=s;}
这儿肯定错了
str[j][N]是数组吗?
能付值给s吗?
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<string.h>
#define N 10
#define M 3
void main()
{
char str[M][N]={"China","Australia","Canada"};
for(int i=65;i<=122;i++)
for(int j=0;j<=M;j++)
{
if(int(str[j][0])==i)
{
for(int k=0;k<N&&str[j][k]!=NULL;k++)
printf("%c",str[j][k]);
printf(" ");
}
}
}
----------------解决方案--------------------------------------------------------
你引用元素啦,而不是一行.
----------------解决方案--------------------------------------------------------
参数 是 指针
[此贴子已经被作者于2007-11-18 14:16:34编辑过]
----------------解决方案--------------------------------------------------------
能给个解决方案么?
----------------解决方案--------------------------------------------------------
*str[j]
----------------解决方案--------------------------------------------------------
if(strcmp(str[j][N],str[j+1][N])>0)
{s=str[j][N];str[j][N]=str[j+1][N];str[j+1][N]=s;}
字符串不能这样赋值,要用函数strcpy。
str[j][N]得换成str[j]
#include<stdio.h>
#include<string.h>
#define N 10
#define M 3
void main()
{
char str[M][N]={"China","Australia","Canada"};
char s[10];
int j;
for(j=0;j<3;j++)
if(strcmp(str[j],str[j+1])>0)
{
strcpy(s,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],s);
}
for(j=0;j<3;j++)
puts(str[j]);
}
----------------解决方案--------------------------------------------------------
谢谢啊
----------------解决方案--------------------------------------------------------