Se connecter avec
S'enregistrer | Connectez-vous

Programme boucles for

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte

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 ^^
Expert Programmation

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde