王小二° 发表于 2023-12-3 21:22:42

看看这个

任务描述
输入正整数N和字符C,输出(2*N-1)行如下规律的字符图形,例如当输入:“4 *”的时候,输出:
*
***
******
********
******
***
*
输入格式:
若干行,每行一组数据,为一个整数和一个字符,之间仅有一个空格分隔。

输出格式:
按要求输出每组字符图形,每组输出之间有一个空行。

输入样例:
1 -
2 +
3 #
4 %
输出样例:
-
+
+++
+
#
###
#####
###
#
%
%%%
%%%%%
%%%%%%%
%%%%%
%%%
%
麻烦用C语言写,要是能加上注释就更好了,谢谢

渔村暮火 发表于 2023-12-3 21:22:43

代码实现如下
#include <stdio.h>
#include <string.h>

int main(int argc, char const *argv[])
{
    int clicks = 0;
    char symbol;
    scanf("%d %c",&clicks, &symbol);
    while(getchar()!='\n');   //清空输入缓存区
    //当输入的行数小于等于零时退出
    while (clicks > 0)
    {
      //上半部分打印
      for (int i = 0; i < clicks; i++)
      {
            for (int j = 0; j < 1+i*2; j++)
            {
                printf("%c ",symbol);
            }
            printf("\n");
      }
      //下半部分打印
      for (int i = 0; i < clicks-1; i++)
      {
            for (int j = 0; j < ((2*clicks-1)-(i+1)*2); j++)
            {
                printf("%c ",symbol);
            }
            printf("\n");
      }
      //再次输入
      scanf("%d %c",&clicks, &symbol);
      while(getchar()!='\n');
    }
   
    return 0;
}

FishC_GPT 发表于 2023-12-3 21:23:02

以下是使用C语言编写的程序,用于实现给定输入要求的字符图形输出:

#include <stdio.h>

int main()
{
    int N; // 存储输入的正整数N
    char C; // 存储输入的字符C

    // 循环读取每一组数据,直到文件结尾
    while (scanf("%d %c", &N, &C) != EOF) {
      // 输出上半部分图形
      for (int i = 1; i <= N; i++) {
            // 输出空格
            for (int j = 1; j <= N - i; j++) {
                printf(" ");
            }
            // 输出字符
            for (int j = 1; j <= 2 * i - 1; j++) {
                printf("%c", C);
            }
            printf("\n");
      }

      // 输出中间行
      for (int i = 1; i <= 2 * N - 1; i++) {
            printf("%c", C);
      }
      printf("\n");

      // 输出下半部分图形
      for (int i = N; i >= 1; i--) {
            // 输出空格
            for (int j = 1; j <= N - i; j++) {
                printf(" ");
            }
            // 输出字符
            for (int j = 1; j <= 2 * i - 1; j++) {
                printf("%c", C);
            }
            printf("\n");
      }

      printf("\n"); // 输出空行
    }

    return 0;
}

代码的思路是根据题目要求分别输出上半部分图形、中间行和下半部分图形。使用嵌套的循环控制字符的输出,并在合适的位置打印空格。每组输出之间使用`printf("\n")`打印一个空行。

注释已经添加在代码中,帮助理解代码的功能和实现思路。希望能帮到您!

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 看看这个