c - 金字塔的 C 程序
问题描述
这是我的星号金字塔代码,但我的输出与我们讲师给定的输出不同。它里面有空格,左右两边都有下划线。有人请帮忙
_ _ _ _ * _ _ _ _
_ _ _ * * * _ _ _
_ _ * * * * * _ _
_ * * * * * * * _
* * * * * * * * *
#include<stdio.h>
#include<conio.h>
int main()
{
int num,s,co,tt=1;
printf("Enter loop repeat number(rows): ");
scanf("%d", &num);
printf("\n");
for(; num>=1; num--,tt++)
{
for(s=1; s<=num; s++)
printf("_");
for(co=tt; co>1; co--)
printf("*");
for(co=tt; co>1; co--)
printf("*");
for(co=num; co>=1; co--)
printf("_");
printf("\n");
}
return 0;
}
解决方案
如果你看到金字塔图案,星号(*
)的数量应该比前一个循环多打印 2,下划线(_
)的数量应该2
比前一个循环少。
由于您有 2 个用于打印星号的 for 循环,因此您的金字塔从2
.
以下面的代码为例。
int main()
{
int num,co;
printf("Enter loop repeat number(rows): ");
scanf("%d", &num);
printf("\n");
int asterisk = 1;
for(; num>=1; num--)
{
for(co=0; co<num; co++)
printf("_");
for(co=0; co<asterisk ; co++)
printf("*");
asterisk +=2; //Increase the number of asterisk by 2.
for(co=num; co>=1; co--)
printf("_");
printf("\n");
}
return 0;
}
输出:
Enter loop repeat number(rows): 10
__________*__________
_________***_________
________*****________
_______*******_______
______*********______
_____***********_____
____*************____
___***************___
__*****************__
_*******************_
推荐阅读
- java - 如何在 8 秒内完成 Ads_Fullscreen Activity 并在病房后午餐 MainActivity?
- outlook - 如何附加 Outlook 邮件横幅/标签
- html - 将两列字段集框紧密堆叠
- java - 安装新软件时出现 JBOSS 错误
- python - Django - “用户”对象没有属性“session_set”
- django - 使用 web server、app server 和 db server 部署 django 应用程序
- android - 三星 Galaxy 手机插孔引脚到 pc
- batch-file - 复制文件以进行备份和附加日期
- c# - 运行 xunit 测试时无法将输出打印到控制台窗口
- android - 我们可以用bubble.is构建移动应用程序吗?它支持从应用程序进行视频通话吗?