Pregunta

I need to have a user input a height value, if it's higher than 23 or less than 0 it should ask again. It should then print a pyramid of #'s sort of like the stairs at the end of a game of mario bros (with 2 hashtags on the right side, see example). The problem is that the code runs and doesn't print any #'s, the code just ends. This is for an online course so please don't just post the code, if you are going to post the full code please explain it.

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;
    }
}
¿Fue útil?

Solución

#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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top