鱼C论坛

 找回密码
 立即注册
查看: 1005|回复: 2

[已解决]看看这个

[复制链接]
发表于 2023-12-3 21:22:42 | 显示全部楼层 |阅读模式
10鱼币
任务描述
输入正整数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;
}

最佳答案

查看完整内容

代码实现如下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 08:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表