Votre question

Programme boucles for

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
15 Novembre 2009 20:00:58

Bonjour,

Je dois faire un programme suivant :

  1. Ecrire le programme correspondant à la session suivante :
  2.  
  3. votre choix (triangle -> t; carre -> c; quitter -> q) : t
  4. hauteur : 4
  5.  
  6. *
  7. **
  8. ***
  9. ****
  10.  
  11. votre choix (triangle -> t; carre -> c; quitter -> q) : c
  12. hauteur : 5
  13.  
  14. *****
  15. * *
  16. * *
  17. * *
  18. *****
  19.  
  20. votre choix (triangle -> t; carre -> c; quitter -> q) : q
  21. aurevoir
  22.  
  23.  
  24. #include <stdio.h>
  25. #include <stdlib.h>
  26.  
  27. int main(void)
  28.  
  29. {
  30.  
  31. char x,t,c,q;
  32. int hauteur,ligne,etoile,espace;
  33.  
  34. printf("Votre choix (triangle -> t; carre -> c; quitter -> q) : ");
  35. scanf("%c",&x);
  36.  
  37. if(x=t)
  38. {
  39. printf("Hauteur : ");
  40. scanf("%d",&hauteur);
  41. for(ligne=0;ligne<hauteur;ligne++)
  42. {
  43. for(etoile=0;etoile<1+ligne;etoile++)
  44. {
  45. printf("*");
  46. }
  47. printf("\n");
  48. }
  49. }
  50.  
  51. if(x=c)
  52. {
  53. printf("Hauteur : ");
  54. scanf("%d",&hauteur);
  55. for(etoile=0;etoile<hauteur;etoile++)
  56. {
  57. printf("*");
  58. for(ligne=0;ligne<hauteur-2;ligne++)
  59. {
  60. printf("*");
  61. for(espace=0;espace<hauteur-2;espace++)
  62. {
  63. printf(" ");
  64. }
  65. }
  66. printf("*");
  67. }
  68. }
  69.  
  70. if(x=q)
  71. {
  72. printf("Au revoir");
  73. }
  74.  
  75. return EXIT_SUCCESS;
  76.  
  77. }


Je ne sais pas encore s'il marche (j'ai peur pour le carré surtout), car quoique je tape au début, il me fait le triangle. Donc j'aimerai savoir d'où vient l'erreur. Pourquoi c'est toujours le 1er "if" qui se lance ?

Merci d'avance,

Autres pages sur : programme boucles for

15 Novembre 2009 20:26:35

Bonjour,
Le test en C, c'est "==" et pas "=" qui est un opérateur d'affectation
m
0
l
15 Novembre 2009 22:10:19

Comme le dit akred3 en C c' est "==", de plus mets des "else if"

exemple :

  1. if(truc == 0)
  2. {
  3. // code
  4. }
  5. else if(truc==1)
  6. {
  7. // code
  8. }
  9. else if(truc==2)
  10. {
  11. //code
  12. }
  13. else
  14. {
  15. // code
  16. }
m
0
l
Contenus similaires
16 Novembre 2009 11:45:13

Ok c'est bon, par contre avec des lettres ca marche pas (comme dans mon exemple).

Mon carré ne fonctionne pas, auriez-vous une idée de l'approche à avoir pour la construction de celui-ci ? Je me remets à chercher, actuellement, mais je dois admettre que je reste assez perplexe.

En tout cas, déjà un grand merci ^^
m
0
l
16 Novembre 2009 19:15:15

si tu cherche une alternative à ton code remplace tes char par des int, ce sera plus simple(n' oublie pas non plus de modifier ton scanf).
m
0
l
a b L Programmation
16 Novembre 2009 20:17:03

pour le coup du "if(x=c)" c'est le plus gros piège du C puisque ce code fonctionne (pas comme on le voudrait) car il est équivalent à "if( (x = c) != 0 )" ou encore "x=c;if(x != 0)".

Pour le carré, il faut décomposer le code en plusieurs étapes.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS