c - 为什么此代码中会产生 6# 标记?
问题描述
我有一个需要解释的问题。
当我运行下面的代码时,会要求我输入 3 个值:高度、宽度和宽度二。如果我输入 1 表示高度,2 表示宽度,2 表示宽度二,则仅在一行上产生 6 个 # 标记,例如“######”——显然没有引号。我不明白为什么要生产 6 个。我希望 4 # 标记是产品。请帮忙!
使用上述值运行后,###### 将成为产品。
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int height = get_int("Height of Pyramid?");
int width = get_int("Length of Width?");
int widthtwo = get_int("Length of Widthtwo?");
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
for (int a = 0; a < widthtwo; a++)
{
printf("#");
}
printf("#");
}
printf("\n");
}
}
解决方案
删除第二个 printf("#"); 线。这是添加两个额外的 # 因为它在 j 循环中每次都被调用。
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
for (int a = 0; a < widthtwo; a++)
{
printf("#"); // Executed 1*2*2 times
}
printf("#"); // Executed 1*2 times - Remove this line
}
printf("\n");
}
这可以帮助您将其可视化:
i j a
0 0 0 #
0 0 1 ##
0 0 1 ### (last # is from 2nd printf)
0 1 0 ####
0 1 1 #####
0 1 1 ###### (last # is from 2nd print)
推荐阅读
- python - 在 firebase-realtime-database 中查询
- hyperledger-fabric - Raft Consensus of Fabric 中 Snapshot 流程的估值是多少?
- android - NestedScrollView 不保存导航回时声明的片段滚动
- python - 程序在 Pycharm 中运行良好,但从命令提示符运行其 cli.exe 会出现错误
- bash - 如何在bash中逐行执行if语句
- sql - 根据链接到表 1 的 ID 选择数据时,将表 2 中的多行连接到单独的列中?
- itext - 在生成 PDF 文档然后使用 iText 7 合并它时,如何摆脱 PDF startxref 错误和 AbstractRenderer 警告消息?
- api - BIM 360 Field API 问题 V1:GET 请求与 Postman 完美配合,使用 RestSharp 响应“未经授权”
- node.js - Node.js 服务器未连接到本地 mongodb 实例
- rest - REST API-什么是标签?