Réaliser une piramyde d'étoile.

Résolu
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 19 févr. 2007 à 07:09
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 - 1 mars 2007 à 10:15
Bonjour tout le monde

J'ai un soucis avec un algo.

Je dois faire un prog qui affiche le nombre de lignes d'etoile selon l'entier entré.

Exemple:

on entre 1

*
on entre 2

*
**

on entre 3

*
**
***

Voici la fonction

int pyramide(int s)
{
    int i,j;



   
    for(i=1;i<s;i++)
    {
     for(j=0;j<s-1;j++)
      {        puts(" *");
                   
      }
     
               
    }
   
   
   
   
    return s;
}



j'ai essayé plusieurs moddif, mais ca ne fonctionne pas.

Que dois je modifié?

Merci

Cordialement
A voir également:

29 réponses

goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
20 févr. 2007 à 11:47
lool autant de messages juste à cause d'un puts alors qu'il doit y
avoir un printf("*") pour eviter les retours à la ligne apres chaque
etoile hihihi

Trafic web gratuit!!!
0
cs_azamharir Messages postés 55 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 1 novembre 2008
20 févr. 2007 à 18:58
salut, tiens ce code ( il marche pour moi ).

#include<stdio.h>
void fct(int s)
{
    if(s==1) printf("*\n");
    else   
    {
        printf("*");
        fct(s-1);
    }
}
   
void pyramide(int s)
{
    if(s==0) return;
    pyramide(s-1);
    fct(s);
}

void main()
{
    int i;
    printf("Entrer le nbre (entier superieur a 0) de lignes d'etoiles a afficher :    ");
    scanf("%d",&i); 
    pyramide(i);
}
0
yacjapan Messages postés 10 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 11 mars 2007
24 févr. 2007 à 20:36
int pyramide(int s)
{
    int i,j;
   
    for(i=1;i<s;i++)
    {
     for(j=0;j<s-1;j++)
      {        puts("*");//pas des espace
                   
      }
      printf("\n");
     
               
    }
   
   
   
   
    return s;//pour quoi?
}
0
yacjapan Messages postés 10 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 11 mars 2007
24 févr. 2007 à 20:39
yacjapan ok for((j=0;j<i;j++) \/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
24 févr. 2007 à 20:42
yacjapan, pas la peine d'insister.
Merci de vouloir aider mais la réponse a déjà été donnée.
Maintenant si l'auteur du sujet ne veut pas se donner la peine de chercher un peu c'est son problème.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0
yacjapan Messages postés 10 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 11 mars 2007
24 févr. 2007 à 20:46
merci
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
25 févr. 2007 à 09:51
yacjapan y a seulement un ptit ik c'est que la fonction puts affiche la
chaine et lui rajoute un \n donc à la place d'une ptramide tu obtient
une colonne

Trafic web gratuit!!!
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
28 févr. 2007 à 23:06
Bonsoir tout le monde

Voici exactement ce que je dois faire.

En entrant 2,3,4, l'ensemble des nombre d'étoil dois rester impaire.

Exemple.

2 ->        *
             ***

3->         *
             ***
           *****

4->          *
              ***
            *****
          *******

Je n'arrive pas à faire en sorte que lors ce que je r'entre au clavier un entier.

Le nombre d'etoiles impair affiche une pyramide.

Voici le code actuel

#include "struct.h"
#include <stdio.h>
#include <stdlib.h>




 





struct var v;



int pyramide(int s)
{
int nb_espaces = 0;   
int nb_esp_affiches = 0;   
int nb_x = 0;
int nb_x_affiche = 0;




 





   
    while(s<9)
    {
      nb_espaces = 15 - s;    
      nb_x = 19 -(nb_espaces * 2);    
       nb_esp_affiches = 0;
      
    while(nb_esp_affiches < nb_espaces)
      {
       printf(" ");    
       nb_esp_affiches = nb_esp_affiches + 1;         
      }
            
 nb_x_affiche = 0;
      
     while(nb_x_affiche < nb_x)
      {
                            
         printf("*");    
                            
          nb_x_affiche = nb_x_affiche + 1;    
                            
      }
      
 nb_esp_affiches = 0;           
      
      while(nb_esp_affiches < nb_espaces)
      {
            
       printf(" ");     
      nb_esp_affiches = nb_esp_affiches + 1;      
            
            
      }
      
      s = s+1;
      printf("\n");
      
          
          
    }   
       
return s;   
}



void principal()
{
    
 puts("Nombre de lignes.");  
 scanf("%d",&v.nbetoile);  
   
    pyramide(v.nbetoile);
   
 system("PAUSE");   
    
    
}    

J'ignore ce que je dois modifier pour que ca fonctionne.

Merci

Cordialement

A bientôt
0
developvbdebut Messages postés 476 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 2 juin 2012 1
1 mars 2007 à 10:15
Bonjour tout le monde

Merci, ca fonctionne.

Cordialement

A bientôt
0
Rejoignez-nous