c - C 如何简化这个 For 循环
问题描述
所以最近我开始了一门教授 C 的课程,我的项目是创建一个基于用户输入的程序,该程序创建一个金字塔,在塔的每一侧之间有两个空间。我找到了一个解决方案,但是我不相信我正确使用了它,有没有办法可以简化它?高度选择范围应为 1-8,并由 # 组成
{
// User Check Point
int value;
do
{
// User Prompt for integer
value = get_int("Height: ");
}
while (value > 8 ||value < 1);
// Once user value is sufficient code will continue
{
// loop to create pyramid
printf("\n ");
for (int i = 7;i<value;i++) putchar('#');
printf(" ");
for (int i = 7;i<value;i++) putchar('#');
printf("\n ");
for (int i = 6;i<value;i++) putchar('#');
printf(" ");
for (int i = 6;i<value;i++) putchar('#');
printf("\n ");
for (int i = 5;i<value;i++) putchar('#');
printf(" ");
for (int i = 5;i<value;i++) putchar('#');
printf("\n ");
for (int i = 4;i<value;i++) putchar('#');
printf(" ");
for (int i = 4;i<value;i++) putchar('#');
printf("\n ");
for (int i = 3;i<value;i++) putchar('#');
printf(" ");
for (int i = 3;i<value;i++) putchar('#');
printf("\n ");
for (int i = 2;i<value;i++) putchar('#');
printf(" ");
for (int i = 2;i<value;i++) putchar('#');
printf("\n ");
for (int i = 1;i<value;i++) putchar('#');
printf(" ");
for (int i = 1;i<value;i++) putchar('#');
printf("\n");
for (int i = 0;i<value;i++) putchar('#');
printf(" ");
for (int i = 0;i<value;i++) putchar('#');
printf("\n");
}
}
解决方案
那么你的问题有点模棱两可。假设您需要创建一个由用户指定大小的金字塔,您可以尝试以下操作:
int i, j, value;
for(i=1; i<=value; i++) {
for(j=i; j<value; j++) {
printf(" ");
}
for(j=1; j<=(2*i-1); j++) {
printf("#");
}
printf("\n");
}
这不是确切的答案,但将是一个好的开始。
推荐阅读
- drools - 如何通过“scoreDrl 或 scoreDrlFile 中有错误”?
- javascript - 如何将多个 WAV 音频 blob 合并为一个?
- javascript - 使用来自导入组件的输入在 React 中设置状态
- compilation - 在 Garfield++ (Linux) 上运行示例 Gem
- html - 文本区域中的 URL 解析不正确
- javascript - reactjs我如何在firebase上读取数组中的地图
- salesforce - Talend 与 salesforce 的连接很慢
- android - 如何交换授权代码以从 Android 获取访问代码和刷新令牌?
- .net - Azure Blob 存储 SDK v12 - BlobClient DownloadAsync 消失了吗?
- reactjs - 如何修复错误--->“DeepMap”类型上不存在属性“名称”