c - CS50 马里奥 - 错误帮助;格式字符串未使用数据参数
问题描述
我无法完成马里奥,也不知道为什么它不起作用。
我观看了一段视频,有人使用“void print (char c, int n); 作为顶部的 protocode(?),但我不明白为什么它应该在那里。
代码:
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int n;
do
{
n = get_int("Height: ");
}
while (n < 1 || n > 8);
for (int i = 0; i < n; i++)
{
printf(".", n - 1 - I);
printf("#", i + 1);
printf("\n");
}
}
错误:
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow marioblock.c -lcrypt -lcs50 -lm -o marioblock
marioblock.c:14:19: error: data argument not used by format string
[-Werror,-Wformat-extra-args]
printf(".", n - 1 - i);
~~~ ^
marioblock.c:15:19: error: data argument not used by format string
[-Werror,-Wformat-extra-args]
printf("#", i + 1);
~~~ ^
解决方案
这是一个语法错误。您printf
以错误的方式使用(参数)。您可能想要for loop
多次打印相同的符号。
例如,以下代码将打印 3 个哈希值###
;
int main(void)
{
for(int i = 0; i < 3; i++)
{
printf("#");
}
printf("\n");
}
要实现 mario pset,请使用一个 for 循环打印散列,使用另一个 for 循环打印空格。我希望这可以帮助您理解设计。
推荐阅读
- javascript - Safari 和 IE11 中的 Angular 5 应用服务器请求错误
- javascript - 将 getElement 从 Id 更改为 Tag (body)
- python - python-使用 urllib 检索网页内容,但得到的内容与我使用浏览器获得的内容不同
- android - 无法从 Windows 上的 React Native 项目生成 Android Apk
- android - RecyclerView 的滚动不起作用到底部
- sql - ORA-29279: SMTP 永久错误: 530 需要 5.7.0 身份验证
- java - Java - 同步无助于互斥
- node.js - 如何完全删除 npm config / cache
- regex - xsd:NMTOKEN 的 XML XSD 正则表达式
- jquery - 垂直居中弹出模式,高度设置为自动