//题目:输入一个字符输出下面图形

//输入:1

//输出:

// 1

// 1 1

// 1 1 1

// 1 1 1 1

/ 1 1 1 1 1

//题解1:笨方法

#include <stdio.h>

int main()

{

 char a=0;
scanf("%c",&a);
printf("    %c\n",a);
printf("   %c %c\n",a,a);
printf("  %c %c %c\n",a,a,a);
printf(" %c %c %c %c\n",a,a,a,a);
printf("%c %c %c %c %c\n",a,a,a,a,a);
return 0;

}

//题解2:巧方法

#include <stdio.h>

int main()

{

char a=0;
int i=0;
scanf("%c",&a);
for(i=0;i<5;i++)//控制行数
{
    int j=0;
    for(j=0;j<4-i;j++)//控制每一行字符前的空格数
    {
    printf(" ");
    }
    for(j=0;j<=i;j++)//控制每一行输入字符个数以及字符后面的空格
    {
    printf("%c ",a);
    }
    printf("\n");//换行
}

}

心得:第一次写用的是第一种方法,即使是笨方法还是出了错,原因是没看清楚题目:输入一个字符,上来就用int定义变量,虽然测试成功却提交失败了,改成char类型后又忘记把%d改成%c......总之就是一波三折(基础不太好,练的又少的缘故),后来看到了大家的题解又想了好长时间改了好多次写出了第二种方法,虽然算法稍有麻烦,但还是高级了很多的。

收获:由于是在B站看了鹏哥C语言的刷题训练营来的,发现在输入有些不同,便搜了一下