VIM编译的~应该怎么修改~。。求解释

代码:#include<stdio.h>#include<string.h>#defineA"┏"#defineB"┣"#defineC"┗"#defineD"┳"#de... 代码:
#include<stdio.h>
#include <string.h>
#define A "┏"
#define B "┣"
#define C "┗"
#define D "┳"
#define E "╋"
#define F "┻"
#define G "┓"
#define H "┫"
#define M "┛"
#define N "○"
#define I "●"
void out(char (*p)[10][3])
{
int i=0,j=0;
for (i=0;i<10;i++)
{
for (j=0;j<10;j++)
{
printf("%s",*(p+i)+j);
}
printf("\n");
}
}
int main()
{
int a,b;
int i,j;
char arr[10][10][3];
char (*p)[10][3];
p=arr;
strcpy(arr[0][0],A);
strcpy(arr[0][9],G);
strcpy(arr[9][0],C);
strcpy(arr[9][9],M);
for(i=1;i<9;i++)
{
for (j=1;j<9;j++)
{
strcpy(arr[i][j],E);
}
}
i=0;
for(j=1;j<9;j++)
{
strcpy(arr[i][j],D);
}
i=9;
for(j=1;j<9;j++)
{
strcpy(arr[i][j],F);
}
for (i = 1; i < 9; i++)
{
strcpy(arr[i][0],B);
strcpy(arr[i][9],H);
}
out(p);
while(1)
{
printf("白子走,请输入行列:");
scanf("%d,%d",&a,&b);
strcpy(arr[a][b],N);
out(p);
printf("黑子走,请输入行列:");
scanf("%d,%d",&a,&b);
strcpy(arr[a][b],I);
out(p);
}
return 0;
}

错误警报:18.c: In function ‘out’:
18.c:21: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[3]’
展开
 我来答
匿名用户
2011-04-06
展开全部
out()函数中的

printf("%s",*(p+i)+j);

改为

printf("%s",p[i][j]);

或者

printf("%s",*(*(p+i)+j));

这并不是错误,而是一个警告信息,表明类型不一致,并无大碍,而且在我的LINUX/UNIX/LONGSON平台上并无任何报警。
追问
能发下你的运行结果吗?就那个输出的图案就行。。我这里显示了很多乱码。。
追答
如图,测试环境是
ubuntu 8.04+gcc 4.2.4
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式