gpt4 book ai didi

C - 当用户输入高度时需要打印带有#的金字塔

转载 作者:行者123 更新时间:2023-11-30 21:47:12 25 4
gpt4 key购买 nike

我需要让用户输入一个高度值,如果它高于 23 或小于 0,则应再次询问。然后它应该打印一个 # 的金字塔,有点像马里奥兄弟游戏结束时的楼梯(右侧有 2 个主题标签,请参见示例)。问题是代码运行并且不打印任何#,代码就结束了。这是一个在线类(class),所以请不要只发布代码,如果您要发布完整的代码,请解释一下。

Pyramid example: https://www.dropbox.com/s/4fyg2ls0eml7asi/Screenshot%20from%202014-03-20%2002%3A15%3A08.png

Flowchart that I followed: http://i.imgur.com/otuDOtK.png

#include <stdio.h>
//#include "cs50.h"

int main(void){
//int h = 0;
printf("Enter height between 0 and 23: ");
int h = scanf("%d", &h);
while (h < 0 || h > 23){
printf("Retry: ");
h = scanf("%d", &h);
}
int l = 1;
if (h == 0){
//printf("ln21\n"); //Debug
return;
}
int s = h - 1;
int b = l + 1;
if (s == 0){
if (b == 0){
printf("\n");
h = h - 1;
l = l + 1;
if (h == 0){
return;
}
}
}
else{
printf("#");
b = b - 1;
}
}

最佳答案

#include <stdio.h>

int main(){
int height = 8;//Number of repetitions of basic.
int max_width = height + 1;//Number of block(#) in the largest display
int i, j, w;
for(i = 0; i < height; ++i){
printf("%*s", max_width -(i+2), "");//Print a space in front of the block
for(w = 0; w < i+2; ++w){
printf("#");//display a block of each floor
}
printf("\n");
}
printf("\n");
return 0;
}
<小时/>
#include <stdio.h>
#include <string.h>

int main(){
int height = 8;
int max_width = height + 1;
char wall[max_width + 1];
int i;
memset(wall, '#', sizeof(wall)-1);// make a block of maximum.
wall[sizeof(wall)-1] = '\0';
for(i = 0; i < height; ++i){
printf("%*.*s\n", max_width, i+2, wall);//View of block size and the required blank
}
return 0;
}

关于C - 当用户输入高度时需要打印带有#的金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22522248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com