C语言关于二维数组指针的一个编程题,求大神指教!

题目:输入N个英文单词,建立字符串数组,按字典顺序输出这些单词。要求使用指针。
#include<stdio.h>
#include<string.h>
int main()
{char a[111],b[111][111],c[111];
int i,j,n;
char *x,**y=NULL,*A;
x=a;A=c,y=b;
printf("请输入单词数\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{a[111]='\0';
gets(a);
for(j=0;*(x+j)!='\0';j++)
*(*(y+i)+j)=*(x+j);}
*(*(y+i)+j)='\0';
for(i=0;i<n;i++)
for(j=0;j>i;j--)
if(*(*(y+i)+0)>*(*(y+j)+0))
{*A=*(*(y+i)+0);
*(*(y+i)+0)=*(*(y+j)+0);
*(*(y+j)+0)=*A;}
for(i=0;i<n;i++)
{for(j=0;*(*(y+i)+j)!='\0';j++)
printf("%c",*(*(y+i)+j));
printf("\n");}
return 0;}
一直搞不懂G:\12\Cpp1.cpp(7) : error C2440: '=' : cannot convert from 'char [111][111]' to 'char ** '
这个错误该如何改正。求大神指教!

#include<stdio.h>
#include<string.h>
int main()
{
char a[111],b[111][111],c[111],d;
int i,j,n;
char *x,*A,(*y)[111]=NULL;//改变定义方式,**p表示指针的指针
x=a;
A=c;
y=b;
printf("请输入单词数\n");
scanf("%d",&n);
d=getchar(); //加上该语句
for(i=0;i<n;i++)
{
a[111]='\0';
gets(a);
for(j=0;*(x+j)!='\0';j++)
*(*(y+i)+j)=*(x+j);
*(*(y+i)+j)='\0';//该语句移动到此
}
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(*(*(y+i)+0)>*(*(y+j)+0))
{
strcpy(A,*(y+i));
strcpy(*(y+i),*(y+j));//执行改变一下,也属于指针的应用
strcpy(*(y+j),A);
}
for(i=0;i<n;i++)
{
for(j=0;*(*(y+i)+j)!='\0';j++)
printf("%c",*(*(y+i)+j));
printf("\n");
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答