Pyramide en C

salut, le but du jeu du jour : faire un soft pas tres utile qui crée une pyramide d’une hauteur h :
exemples :

*

  ***
 *****


ici, h=4, oui elle est moche mais en théorie elle est toute belle.
Y a une demo equivalente d’un copain ici .

#include <stdio.h> ;
 #include <conio.h> ;
 int main(int argc, char argv[]) {
 int h,n,l;
 /
h est l’entrée user, l sert dans la boucle, et n est le nombre d’etoiles a ajouter a chaques lignes /
printf(“salut, entre un nombre
”);
h=getchar();
 for(n=0,l=1;n {
  while(n>0) { printf(" *
"); n–; }
printf("
"); }
 return 0; }

oui le conio est la pour un getch a la fin
bon les questions, Mr pourquoi j’ai pas le temps de lire ?
et apres j’editerai
vala vala



Ce message a été édité par fser le 25/09/2004

j’ai tenté ça pour tester le getch :

#include <stdio.h>
#include <conio.h>

int main()
{

int h,n,l,z;
/* h est l’entrée user, l sert dans la boucle, et n est le nombre d’etoiles a ajouter a chaques lignes */
printf(“salut, entre un nombre :
”);
h=getc(stdin);
printf("%d",&h);
z=getchar();
return 0;
}

Y’a pas une histoire de buffer qui serait plein de caractère ou un truc du style.

En mettant un flushall() avant le getch()?
[/quote]

Hop !

#include “stdio.h”;

int main(int argc, char *argv[])
{
int h = 4; // Hauteur de la pyramide
int x, i, blanc, etoile;
for (x = 0 ; x < h ; x++) {
blanc = h - x - 1;
etoile = 1 + 2 * x;

for (i = 0 ; i < blanc ; i++)
printf(" “);
for (i = 0 ; i < etoile ; i++)
printf(”*");
printf ("
");
}

}

La hauteur est codee en dur, mais c’est pas super dur a modifier

#include

using namespace std ;

void TracePyramid(int iNbRow, int iRow)
{
  if( iRow > 1 )
  {
  TracePyramid(iNbRow, iRow-1) ;
  }

  &nbsp; cout.width( iNbRow - iRow ) ;
  &nbsp; cout.fill(' ') ;
  &nbsp; cout << "" ;

  &nbsp; cout.width( 2*iRow-1 ) ;
  &nbsp; cout.fill('X') ;
  &nbsp; cout << "" << endl ;

}

int main(void)
{
  int iNbRow ;

  &nbsp; cout << "Entrer le nombre de ligne : " ;
  &nbsp; cin >> iNbRow ;
  &nbsp; cout << endl ;

  &nbsp; TracePyramid(iNbRow, iNbRow) ;

  &nbsp; return( 0 ) ;

}

Moktar: Il demandait en C, pas en C++ 

[quote]int h,n,l,z;
h=getc(stdin);[/quote]Déjà là ça part en couille.
getc ou getchar renvoi un unsigned char casté en int donc dans h tu te retrouve avec le code ascii du numéro et non le numéro lui même.

/edit: Vu la période de l’année et la tête de l’exo, ça sent quand même le TP d’initiation au C ça
Ce message a été édité par Merlin le 25/09/2004

[quote][… code …][/quote]j aime ce genre de solution le seul probleme c est que tu va faire peter ta stack si tu met un grand nombre

Merci a tous
le seul probleme est qu’aucun de vos codes ne laisse le temps de voir les magnifiques pyramides…
et qu’il ma fait un enregistrement auto et que j’ai paumé mon fichier comme un con, mais ça je m’en fou a la limite

fser: bah tu lance un cmd (windows) ou un shell (unix) et tu browse jusqu au repertoire de ton binaire, et la tu n a plus qu a taper le nom de ton executable. et pouf ca s affiche mais la fenetre ne se ferme pas

sinon sous visual.net quand je prend un profil de projet type “win32 console project” (ou qqch comme ca, je ne sais plus exactement) il m ajoute toujours a la fin un “appuyer sur une touche pour quitter…” pratique egalement.

Ce message a été édité par Kzi le 26/09/2004


J’vais me cacher

ou sinon tu fais un getc à la fin et tu demandes d’appuyer sur entrée ?

(attention, grave n00b en C inside mais j’me soigne )

tout pareil lucas
j’ai tenté mais ça marchait pas :P)
Bon allé je vais continuer ma cure.

mmm peut être que le buffer clavier est pas vide ?

(flush quelque chose je crois )

ça devrait te laisser le temps de regarder pépère, juste avant le return :
system(“pause”);

L’autre technique c’est de foutre un breakpoint sur le return final (pour les feignasses ^^;  )

si c’est juste pour admirer ton travail à la fin, tu peux faire sous windows :
system (“pause”);

ou sous linux y a la fonction wait (nombre_de_secondes) mais fais donc un man, je me souviens plus des librairies a inclure.

GRILLED

Ce message a été édité par susmab le 26/09/2004

Question con : c’est quoi l’intérêt du getchar par rapport au scanf ?

(j’me renseigne )

question existenciel …
etre, ou ne pas etre …
C, C++ C#…
j’ai de mauvais echo sur le C# mais  de bons aussi quoi …
a la fois le C ça sert a rien quasiment !
Bon ok c’est ± objectif comme langage mais y a quand meme des choses a eviter …
J’EN SAIS RIEN !!!
( petage de câble )

Ce message a été édité par fser le 26/09/2004

[quote]C, C++ C#…
j’ai de mauvais echo sur le C# mais  de bons aussi quoi …

*Dans le cadre de mes etudes, on commence le c++ tout en ayant la possibilité de faire nos proj en c#, mais ils nous ont tres fortement deconseillé de faire du C# si on avait jamais fait de POO avant.

a la fois le C ça sert a rien quasiment !

*Sous windows je veux bien te croire (quoi que avec un mix c/c++ est largement faisable), sous unix absolument pas, ca reste meme le language de predilection.

Bon ok c’est ± objectif comme langage mais y a quand meme des choses a eviter …
J’EN SAIS RIEN !!!
( petage de câble )

*Commence par des bases solides en C (passer de malloc & pointeur a new & reference pose 1000 fois (et je suis optimiste) moins de probleme que le contraire. C est ce que je repete presque a chaque fois qu on parle choix de language de prog, mais je ne m en lasse pas: commencez par un language aussi bas niveau que possible (des bases d assembleur c est pratique de temps en temps), vous aurez les mechanismes qui vous evitrons des tonnes d erreurs dans des languages plus haut niveau. les language au niveau et les generateurs de code c est bien, mais une fois qu on a les bases.

Ce message a été édité par fser le 26/09/2004[/quote]

(c# ca pwnz)