Afficher des nombres en augmentant leur indentation
Fermé
2Alexandre222
Messages postés
1
Date d'inscription
jeudi 10 février 2022
Statut
Membre
Dernière intervention
10 février 2022
-
Modifié le 10 févr. 2022 à 14:40
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 10 févr. 2022 à 14:37
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 10 févr. 2022 à 14:37
A voir également:
- Afficher des nombres en augmentant leur indentation
- Code binaire des nombres - Guide
- Afficher appdata - Guide
- Afficher mot de passe wifi android - Guide
- Excel afficher 0 avant nombre - Guide
2 réponses
Utilisateur anonyme
10 févr. 2022 à 07:11
10 févr. 2022 à 07:11
Bonjour
Pour poster un code,merci d’utiliser les balises de code (voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )
Notamment ça préserve l’indentation.
Ton énoncé te dit « pour chaque ligne, afficher les espaces puis le nombre ».
Essaye de travailler sur cette instruction
Pour poster un code,merci d’utiliser les balises de code (voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )
Notamment ça préserve l’indentation.
Ton énoncé te dit « pour chaque ligne, afficher les espaces puis le nombre ».
Essaye de travailler sur cette instruction
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 811
Modifié le 10 févr. 2022 à 14:38
Modifié le 10 févr. 2022 à 14:38
Bonjour,
Remarques préalables
Merci de soigner la manière dont tu écris tes messages :
Retour à ton exercice
Tu n'es pas trop loin de la réponse mais je pense que tu as voulu aller trop vite en essayant d'appliquer directement les indices au lieu d'y aller par étape. À mon avis, tu devrais dans un premier commencer par essayer de voir ce que tu ferais sans utiliser de boucles. Puis tu verras naturellement des portions de code qui se ressemblent et qui se factorise avec une boucle
Repartons de l'exemple
Sans boucle le programme ressemblerait à :
... ce qui se réécrit :
Notons
On voit à présent que les 4 sections de code (i == 0 à i == 3) sont identiques si on omet l'initialisation de
Bonne chance
Remarques préalables
Merci de soigner la manière dont tu écris tes messages :
- Merci de soigner l'orthographe et la ponctuation, cela rendra ton message plus agréable à lire et augmentera les chances d'avoir des réponses ;
- Merci d'éviter le contenu en anglais (tu aurais pu traduire ton exercice) vu que le forum est francophone, cela maximisera les chances de recevoir de l'aide ;
- Comme l'indique Whismeril, merci d'utiliser les balises de code (et de poster un code indenté, un éditeur raisonnable doit te permettre d'indenter un code mal indenté). Ça rendra ton code plus lisible et t'évitera des erreurs de programmation. Je te recommande par la même occasion d'espacer ton code (espace autours des opérateurs, espace derrière les
,
et les;
mais pas devant) afin de prendre tout de suite de bonnes habitudes.
Retour à ton exercice
Tu n'es pas trop loin de la réponse mais je pense que tu as voulu aller trop vite en essayant d'appliquer directement les indices au lieu d'y aller par étape. À mon avis, tu devrais dans un premier commencer par essayer de voir ce que tu ferais sans utiliser de boucles. Puis tu verras naturellement des portions de code qui se ressemblent et qui se factorise avec une boucle
for.
Repartons de l'exemple
userNum = 3:
Sans boucle le programme ressemblerait à :
#include <stdio.h> int main(void) { printf("0\n"); printf(" 1\n"); printf(" 2\n"); printf(" 3\n"); return 0; }
... ce qui se réécrit :
#include <stdio.h> int main(void) { printf(""); // 0 espace printf("0\n"); printf(" "); // 1 espaces printf("1\n"); printf(" "); // 2 espaces printf("2\n"); printf(" "); // 3 espaces printf("3\n"); return 0; }
Notons
ile nombre courant courante. Essayons maintenant de mettre une variable
iqui ces sections de code ne dépendent plus que de
i. Pour cela il va falloir :
- corriger l'affichage des
i
espaces. C'est là que la variablej
va entrer en jeu. - puis écrire la valeur de
i
; - puis écrire le retour à la ligne;
#include <stdio.h> int main(void) { unsigned i, j; // i == 0 i = 0; for (j = 0; j < i; j++) printf(" "); // afficher i espaces printf("%d\n", i); // i == 1 i = 1; for (j = 0; j < i; j++) printf(" "); // afficher i espaces printf("%d\n", i); // i == 1 i = 2; for (j = 0; j < i; j++) printf(" "); // afficher i espaces printf("%d\n", i); // i == 3 i = 3; for (j = 0; j < i; j++) printf(" "); // afficher i espaces printf("%d\n", i); return 0; }
On voit à présent que les 4 sections de code (i == 0 à i == 3) sont identiques si on omet l'initialisation de
i, et que
iest incrémenté de 1 à chaque fois. C'est là qu'on voit que ces sections se factorisent... et si tu le fais bien, tu corrigeras ton erreur par la même occasion.
Bonne chance