胖胖的小阿涵 发表于 2021-1-29 21:43:06

我这个为啥出来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");
        }

胖胖的小阿涵 发表于 2021-1-29 21:49:18

#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");
        }
我这么改第二行又出乱码了是怎么回事

sunrise085 发表于 2021-1-29 21:53:16

两个问题,一个大问题一个小问题
大问题是你定义的数组指针不对
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;
}

小甲鱼的铁粉 发表于 2021-1-29 21:55:08

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");
      
                }
}

sunrise085 发表于 2021-1-29 21:57:21

胖胖的小阿涵 发表于 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;
}

胖胖的小阿涵 发表于 2021-1-29 22:03:53

指针要比数组少一个中括号是啥意思
页: [1]
查看完整版本: 我这个为啥出来9个方框