我这个为啥出来9个方框
编写一个程序,接收用户的输入,并将前 9 个字符以正方形矩阵(3 * 3)的方式输出。{:10_266:}#include<stdio.h>
#define max 1024
int main()
{
int i,j;
char a;
char (*p)=&a;
printf("请输入:");
scanf("%s",a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2c",p);
}
printf("\n");
} #include<stdio.h>
#define max 1024
int main()
{
int i,j;
char a;
char (*p)=&a;
printf("请输入:");
scanf("%s",a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2c",p);
}
printf("\n");
}
我这么改第二行又出乱码了是怎么回事
两个问题,一个大问题一个小问题
大问题是你定义的数组指针不对
char (*p)=&a;
应该改为
char (*p)=a;
小问题是
scanf("%s",a);
实际上是将输入的内容放在了一行之中,你在下面循环中每行取三个,只能得到第一行的三个,后面两行是内容未知的
#include<stdio.h>
#define max 1024
int main()
{
int i,j;
char a;
char *p=&a;
printf("请输入:");
scanf("%s",a);
printf("%s\n",a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2c",p);
}
printf("\n");
}
return 0;
} char (*p)=&a;
这个错了
#include<stdio.h>
#define max 3
int main()
{
int i,j;
char a;
char (*p)=a;
printf("请输入:");
scanf("%s",a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2c",p);
}
printf("\n");
}
} 胖胖的小阿涵 发表于 2021-1-29 21:49
#include
#define max 1024
int main()
写完答复之后,刷新了才看到你在二楼写的内容
你这样修改之后,指针定义那一行仍然有问题,你要记住,指针要比数组少一个中括号。。。。
#include<stdio.h>
#define max 1024
int main()
{
int i,j;
char a;
char *p=a;
printf("请输入:");
scanf("%s",a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2c",p);
}
printf("\n");
}
return 0;
} 指针要比数组少一个中括号是啥意思
页:
[1]