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

题目:输入N个英文单词,建立字符串数组,按字典顺序输出这些单词。要求使用指针。#include<stdio.h>#include<string.h>intmain(){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 ** '
这个错误该如何改正。求大神指教!
展开
 我来答
dlmulogo
2013-12-09 · 超过13用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:27.5万
展开全部
#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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式