J'ai donc ce code que j'ai créé pour CS50 pset1 Mario problème. Le code se comporte correctement et fait exactement ce qu'il est censé faire, mais je ne comprends pas l'une des parties. Pourquoi se comporte-t-il de cette façon?Pourquoi ma boucle for C fonctionne-t-elle correctement?
Voici le code que je l'ai écrit en C:
#include <cs50.h>
#include <stdio.h>
int main (void){
int height, row, space, hash;
do {
printf("Height: ");
height = get_int();
} while(height<0 || height>23);
for (row=0; row<height; row++){
for (space=height-(row+1); space>0; space--){
printf("-");
}
for (hash=height-row; hash<=height; hash++){
printf("#");
}
printf("#\n");
}
}
Ainsi, par exemple lorsque l'utilisateur entre 3 à la hauteur, je reçois
--## -### ####
Ce que je ne comprendre pourquoi ce n'est pas:
--#### -### ##
Cette partie est ce qui me jetant:
for (hash=height-row; hash<=height; hash++){
printf("#");
}
Si hachage = hauteur ligne devrait alors pas être 3-0 = 3 et l'ont imprimer le signe dièse 3 fois? Puis 3-1 = 2 et imprimez-le deux fois, et ainsi de suite? Pourquoi le fait-il en sens inverse?
Quelqu'un peut-il expliquer ce qui ne va pas avec ma logique?
S'il vous plaît tourner ceci dans un débogueur premier :( – KevinDTimm