c程序问题,哪里错了?输入3个字符串,并显示

来源:百度知道 编辑:UC知道 时间:2024/05/27 07:02:54
#include "stdio.h"
main()
{int i,j;char a[3][3];
void px(char *p);
char *p;
p=*a;
for(i=0;i<3;i++)
{scanf(" %s",p+i);}
p=*a;
for(i=0;i<3;i++)
{printf("%s",p+i);}
getch();
}
为什么显示不正确。
输入123
456
789

显示的却是:147894789789

#include "stdio.h"
main()
{
int i,j;char a[3][3];
void px(char *p);
char *p;
p=*a;
for(i=0;i<3;i++)
{
scanf("%s",a[i]);
}
p=*a;
for(i=0;i<3;i++)
{
printf("%s\n",a[i]);
}
getch();
}

注意,p+i==&a[0][i]

scanf(" %s",p+i)这一句应该改成scanf(" %s",p++)
下面的那一句也一样