Probleme en programmation, langage C !!! Aidez moi svp!!!

Probleme en programmation, langage C !!! Aidez moi svp!!! - C++ - Programmation

Marsh Posté le 01-11-2004 à 11:05:36    

Bonjour:
 
Voila j'ai un programme en C à faire mais je n'y arrive po, ya plusieurs choses qui me coincent !
Voici l'exo:
 
Afficher un riangle isocèle d'étoiles de N lignes (N est fourni au clavier).
Ex:Nombre de lignes : 8.
 
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************
 
Voila ce que ca doit afficher!
 
Jpensais le faire avec une boucle (genre "for" ou "do while" ) avec des incrémentation et décrémentation (genre à chaque ligne il y a un espace en moins). De plus j'ai remarquer que pour trouver le nombres d'étoiles il fallait multiplier le nombre de la ligne par 2 et ensuite soustraire 1. De plus j'ai remarqué qu'à chaque ligne il y a 2 étoiles supplémentires. J'ai essayé mais je n'arrive pas a faire une incrémentation de 2 étoiles!
 
Voila j'espere que je vous ai pas trop embetter avec mon exos et mes pistes mais svp aidez c'est un exo noté !!!
 
Merci d'avance!
 
jérémie5169 (dut geii)

Reply

Marsh Posté le 01-11-2004 à 11:05:36   

Reply

Marsh Posté le 01-11-2004 à 11:07:45    

nbEtoiles += 2;


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-11-2004 à 11:13:09    

kadreg a écrit :

nbEtoiles += 2;


 :jap:  
et nbLeadingSpaces -= 1


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 01-11-2004 à 11:14:03    

J'ai envie de le faire en récursif [:dawa]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-11-2004 à 11:36:05    

Code :
  1. #include <iostream>
  2. const int NB=24;
  3. template <int T, int U=1>
  4. class StarLine {
  5.   StarLine<T, U+2> inner;
  6. public:
  7.   void go () {
  8.     for (int i=0; i<(T - U)/2; i++) std::cout<<' ';
  9.     for (int i=0; i<U; i++) std::cout<<'*';
  10.     std::cout<<std::endl;
  11.     inner.go ();
  12.   }
  13. };
  14. template <>
  15. class StarLine <NB, NB+1>{
  16. public:
  17.   void go () {};
  18. };
  19. int main () {
  20.   StarLine<NB> line;
  21.   line.go ();
  22.   return 0;
  23. }


 
 
Ravi de t'avoir aidé :jap:


Message édité par kadreg le 01-11-2004 à 11:41:06

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-11-2004 à 11:37:14    


Fallait le faire en C  [:forummp3]

Reply

Marsh Posté le 01-11-2004 à 11:38:09    

WhatDe a écrit :

Fallait le faire en C  [:forummp3]


 
C'est dans la cat' C++ [:spamafote]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-11-2004 à 11:38:36    

kadreg a écrit :

C'est dans la cat' C++ [:spamafote]


 [:airforceone]

Reply

Marsh Posté le 01-11-2004 à 11:43:37    

Code :
  1. for(int k=1;k<=n;k++){
  2.    for(int i=0;i<(n-(k*2)/2);i++) putchar(' '); 
  3.    for(int i=0;i<(k*2)-1;i++) putchar('*'); 
  4.    putchar('\n');
  5. }


 
http://users.skynet.be/polo021/bounce.gif

Reply

Marsh Posté le 01-11-2004 à 11:56:22    

Code :
  1. #include <iostream>
  2. const int NB=24;
  3. template <int T, int U=0>
  4. class StarLine : public StarLine<T, U+1> {
  5. public:
  6.   StarLine () {
  7.     for (int i=0; i<U; i++) std::cout<<' ';
  8.     for (int i=0; i<1+((T-U)*2); i++) std::cout<<'*';
  9.     std::cout<<std::endl;
  10.   }
  11. };
  12. template <>
  13. class StarLine <NB, NB+1>{
  14. public:
  15.   StarLine() {}
  16. };
  17. int main () {
  18.   StarLine<NB> line;
  19.   return 0;
  20. }


 
Cette version là est plus fun [:uriel]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-11-2004 à 11:56:22   

Reply

Marsh Posté le 01-11-2004 à 12:18:46    

J'ai pêté un plomb [:dawa]  
 

Code :
  1. #include <iostream>
  2. const int NB=24;
  3. template<char C, int N>
  4. class Afficher : Afficher<C, N-1> {
  5. public:
  6.   Afficher () {
  7.     std::cout<<C;
  8.   }
  9. };
  10. template <char C>
  11. class Afficher<C, 0> {
  12. public:
  13.    Afficher () {}
  14. };
  15. template <int T, int U=0>
  16. class StarLine : public StarLine<T, U+1> {
  17. public:
  18.   StarLine () {
  19.     Afficher<' ', U> a;
  20.     Afficher<'*', 1+((T-U)*2)> b;
  21.     std::cout<<std::endl;
  22.   }
  23. };
  24. template <>
  25. class StarLine <NB, NB+1>{
  26. public:
  27.   StarLine() {}
  28. };
  29. int main () {
  30.   StarLine<NB> line;
  31.   return 0;
  32. }


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-11-2004 à 12:22:05    

J'aurais plutôt remplacé StarLine par un truc plus joli:

Code :
  1. std::cout << std::setfill(' ') << std::setw(1+(T-U>>1))
  2.               << '/' << std::setfill('*') << std::setw(U)
  3.               << '\\' << std::endl;


 
il faut un #include <iomanip>...

Reply

Marsh Posté le 01-11-2004 à 12:28:17    

C'est moins meta que la dernière version quand même [:spamafote]


Message édité par kadreg le 01-11-2004 à 12:28:57

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 01-11-2004 à 12:31:17    

C'est moin méta, mais les iostreams font partie intégrante du standard...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed