c语言问题 等腰梯形,求助,C语言编程,如下

最佳答案

问题本身并不复杂,通过下面图片即可分析出结果:

t0183db224033405fe3.jpg有没有灵感了呢?好了,话不多说,接下来是我基于上面图片编程程序的运行结果。需要说明的是:

<1> 操作系统是Windows 10 x86版本;

<2> C语言编译器是MinGW w64;

<3> 截图第1句是cmd下编译源代码文件isosceles_trapezoid.c,并链接为main.exe;

<4> 截图之后的内容为运行main.exe的结果。

t017b29c93d8ba2d23d.jpg

接下来是源代码文件isosceles_trapezoid.c的内容。需要注意的是,如果题主想修改显示的*、梯形内部填充的空格,甚至每行前置的空格,都可以在程序开始处的#define处修改。

-------------------------------------------------------------------------------

/**

* Author : grass_rt

* File name: isosceles_trapezoid.c

*/

#include

#define PLACE_HOLDER (' ') // 空格占位符,此处为空格

#define PRINTED_CHAR ('*') // 打印的符号,此处为*

#define FILLED_CHAR (' ') // 梯形内部填充的字符

/**

* void print_trapezoid(const int n);

* 作用: 打印高度为n的等腰梯形

* 输入参数: 高度n

* 输出参数: 无

* 副作用 : 打印等腰梯形

*/

void print_trapezoid(const int n);

int main(void)

{

int n; // 输入的n

// 获取n

printf("Please input N: ");

scanf("%d", &n);

// 打印等腰梯形

print_trapezoid(n);

return 0;

}

void print_trapezoid(const int n)

{

int pchars_1st_line = n; // 首行的*数量

int pchars_last_line = 3*n - 2; // 末行的*数量

int leading_holders; // 每行的前置空格数量

int filled_chars; // 梯形中间各行填充的空格数量

for (int i = 1; i <= n; ++i) {

// 打印每行的前置空格

leading_holders = n-i;

for (int j = 0; j < leading_holders; ++j)

putchar(PLACE_HOLDER);

// 第1行显示n个*

if (1 == i) {

for (int k = 0; k < pchars_1st_line; ++k)

putchar(PRINTED_CHAR);

}

// 最后一行显示n + 2×(n-1) = 3n-2个*

else if (n == i) {

for (int k = 0; k < pchars_last_line; ++k)

putchar(PRINTED_CHAR);

}

// 显示其余各行

else {

// 第1个*

putchar(PRINTED_CHAR);

// 梯形内部填充的字符

filled_chars = n + (i-2) * 2;

for (int k = 0; k < filled_chars; ++k)

putchar(FILLED_CHAR);

// 第2个*

putchar(PRINTED_CHAR);

}

putchar('\n');

}

}

最佳答案由网友  grass_rt  提供

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值