跳至主要內容

Lab08-小悦的字符菱形

AI悦创原创C 语言教程C 练习C 语言教程C 练习大约 3 分钟...约 792 字

描述

小悦尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。

输入描述:

输入一个 char 类型字符

输出描述:

输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形

示例1

输入:

#

输出:

  #
 ###
#####
 ###
  #
答案

解法一:直接打印

#include "stdio.h"

int main() {
    char ch;
    scanf("%c", &ch);
    printf("  %c  \n", ch);
    printf(" %c%c%c \n", ch, ch, ch);
    printf("%c%c%c%c%c\n", ch, ch, ch, ch, ch);
    printf(" %c%c%c \n", ch, ch, ch);
    printf("  %c  \n", ch);
    return 0;
}

解法二:通用方法,输入打印的符号 ch 和行数 num

#include "stdio.h"

int main() {
    char ch;    //打印的符号
    int num = 5; //对角线数目
    int i, j1, j2; //j为行数
    scanf("%c", &ch);

    //upper打印上半角
    for ( i = 0; i < (num - 1) / 2; i++) {
        j2 = i * 2 + 1;  //符号数
        j1 = (num - j2) / 2; //空格数
        while ( j1-- > 0 )
            printf(" ");
        while ( j2-- > 0 )
            printf("%c", ch);
        printf("\n");
    }

    //middle打印中间行
    j2 = num;
    while ( j2-- > 0 )
        printf("%c", ch);
    printf("\n");

    //lower下半角
    for ( i = (num - 1) / 2 + 1; i < num; i++ ) {
        j1 = i - (num - 1) / 2; //空格数
        j2 = num - j1 * 2; //符号数
        while ( j1-- > 0 )
            printf(" ");
        while ( j2-- > 0 )
            printf("%c", ch);
        printf("\n");
    }

    //end
    return 0;
}
#include <stdio.h>
int main() {
    char ch;
    scanf("%c", &ch);
    int i, j;
    int n = 3;  // 设包括对角线在内的上半部分有 n 行
    for (i = 1; i <= n; i++) { // 打印第 1 行到对角线(第 n 行)
        for (j = 0; j < n - i; j++)
            printf(" "); // 先打印每行的空格,第 i 行有 n-i 个空格
        for (j = 0; j < 2 * i - 1; j++)
            printf("%c", ch);   // 再打印每行的字符,第 i 行有 2*i-1 个
        printf("\n");    // 打印完每行空格和字符,要换行
    }
    for (i = 1; i < n; i++) { // 对角线以下部分只有 n-1 行,从 1 到 n-1
        for (j = 0; j < i; j++)
            printf(" ");  // 每行前面的空格依次增加 1 个,第 i 行有 i 个空格
        for (j = 0; j < 2 * (n - i) - 1; j++)
            printf("%c", ch);  // 每行的字符依次减少 2 个,第 i 行有 2*(n-i)-1 个
        printf("\n");
    }
    return 0;
}
公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Linux、Web、Sql」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度