0003 . 输出字符菱形(c语言入门练习题)

小蒜蒜最近学习了菱形(四边都相等的四边形)。

  • 现在她给了你一个字符,希望你能用它构造一个对角线长 5 个字符,倾斜放置的菱形。

输入格式输入只有一行,包含一个字符
输出格式该 字符 构成的 菱形

样例输入 *

样例输出

    *
   ***
  *****
   ***
    *

代码如下:

#include 
int main (void){
    int a = 1;
    int c = 1;
    char b;
    scanf("%c",&b);
    for(a=1;a<=3;a++){
        for(c=1;c<=3-a;c++){
            printf(" ");
        }
        for(c=1;c<2*a;c++){
            printf("%c",b);
        }
        printf("\n");
    }
    for(a=1;a<=2;a++){
        for(c=1;c<a+1;c++){
            printf(" ");
        }
        for(c=5;c>2*a;c--){
            printf("%c",b);
        }
        printf("\n");
    }
    
    return 0;
}

emmmmmm
好像是有点麻烦啊,但是我觉得这个题和马里奥那个一样,所以我就稍微改了一下。
觉得麻烦的话,没关系简单的也有。

代码如下:

#include 
int main(void){
    char a ;
    scanf("%c",&a);
    printf("  %c\n",a);
    printf(" %c%c%c\n",a,a,a);
    printf("%c%c%c%c%c\n",a,a,a,a,a);
    printf(" %c%c%c\n",a,a,a);
    printf("  %c\n",a);
    return 0;
}

第一种方法总体分成了两个循环,因为我首先想到菱形应该是两个三角形拼成的,只不过是一个正放的一个倒放的。第一层循环控制的是循环的行数,接下来的两个小循环分别控制打印空格星号,空格应该是 2 ~ 1 ~ 0个,所以是3-a,也就是3-1,3-2,3-3。星号应该是1 ~ 3 ~ 5,循环的条件如果选择加法或者减法不太合适,1 ~ 3 ~ 5对应2~ 4 ~ 6,所以我们可以使用乘法,直接a*2

第二种方法就不说了,注意数量对应就好了

你可能感兴趣的:(0003 . 输出字符菱形(c语言入门练习题))