juezuo 发表于 2018-3-9 15:12:48

两个问题想了一天·····

#include<stdio.h>

int main()
{
        int i,j,n;

       int array = {0};
        for(i=0;i<3;i++)
        {
                for(j=0;j < 3;j++)
                {
                        array = getchar();
                       
                }
               
        }
       
                for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                printf("%c ", array);//这里 输出不应该是"%d" 么,因为array是int型
                       
                }
                printf("\n");
        }
        return 0;
        }

juezuo 发表于 2018-3-9 15:16:23

#include <stdio.h>
#include <string.h>
#define MAX 1024


int main()
{
        int i,j;
        char str;
        scanf("%s",str);
       
        int length,ave;
        length=strlen(str);
       
        ave=length/2;
       
        for(i=0;i<ave;i++)
        {
               
                for(j=0;j<ave;j++)
                {
                        printf("%c ",str); 这里输出为什么采用str就会报错?
                                                                              而且str就不会报错了?
                       
       
                }
                printf("\n");
        }
       
        return 0;
}

风过无痕丶 发表于 2018-3-9 15:21:17

第一个问题,%c的目的可能是为了输出对应的ascii字符
第二个问题…他是个一维数组…你进行了二维数组的操作…或者说 指向指针的指针的操作…

BngThea 发表于 2018-3-9 17:18:17

1, 虽然array存放的是int数据,由于开始就是用getchar输入的,所以存放的值就是字符对应的ascii值,所以可以用%c进行输出
2,你声明的str只是一个指向一维数组的指针,不能用二维数组的下标索引形式
页: [1]
查看完整版本: 两个问题想了一天·····