Return 字符串而不是整数
Return string instead of int
当我打印出一个金字塔时,金字塔的最后一行或底部打印出一个表示多少哈希的整数,而不是一串哈希。
像这样:
身高:3
#
##
3
当它应该是:
Height 3:
#
##
###
我应该根据用户的输入打印出一个具有高度的金字塔,但不是将底作为字符串打印出来,而是打印出底应该有多少哈希值的整数。我知道这是因为我要返回 n 但我不知道如何以仍然 returns 循环的方式进行处理。
我已经尝试将 class 更改为 void 而不是 int,但是由于类型冲突而引发错误。我在想我应该打印出一个空字符串,但它弄乱了我的界限。
#include <cs50.h>
#include <stdio.h>
int get_height(string prompt);
int main(void)
{
int ask = get_height("Height: ");
printf("%i\n", ask);
}
int get_height(string prompt) {
int n;
do {
n = get_int("%s", prompt);
}
while (n < 1 || n > 8);
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
printf("#");
}
printf("\n");
}
return n;
}
输出的最后一行是高度,因为这是您的 main
函数中最后打印的内容:
printf("%i\n", ask);
get_height
实际上只会打印 n-1
行,因为第一次迭代 (i=0,j=0) 被跳过。
应该输出3
这个语句有问题;
for (int j = 0; j < i; j++) {
太早停止了。建议:
for (int j = i; j >=0; j--) {
进行上述更改后的输出:
#
##
###
3
当我打印出一个金字塔时,金字塔的最后一行或底部打印出一个表示多少哈希的整数,而不是一串哈希。
像这样:
身高:3
#
##
3
当它应该是:
Height 3:
#
##
###
我应该根据用户的输入打印出一个具有高度的金字塔,但不是将底作为字符串打印出来,而是打印出底应该有多少哈希值的整数。我知道这是因为我要返回 n 但我不知道如何以仍然 returns 循环的方式进行处理。
我已经尝试将 class 更改为 void 而不是 int,但是由于类型冲突而引发错误。我在想我应该打印出一个空字符串,但它弄乱了我的界限。
#include <cs50.h>
#include <stdio.h>
int get_height(string prompt);
int main(void)
{
int ask = get_height("Height: ");
printf("%i\n", ask);
}
int get_height(string prompt) {
int n;
do {
n = get_int("%s", prompt);
}
while (n < 1 || n > 8);
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
printf("#");
}
printf("\n");
}
return n;
}
输出的最后一行是高度,因为这是您的 main
函数中最后打印的内容:
printf("%i\n", ask);
get_height
实际上只会打印 n-1
行,因为第一次迭代 (i=0,j=0) 被跳过。
应该输出3
这个语句有问题;
for (int j = 0; j < i; j++) {
太早停止了。建议:
for (int j = i; j >=0; j--) {
进行上述更改后的输出:
#
##
###
3