C : Boucle ne s'éxécute pas

Résolu
SeKoYa Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   -  
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,
Je suis plus ou moins débutant en programmation C,
Je souhaite créer un programme (console) m'affichant une pyramide d'étoiles en fonction du nombre de lignes entré par l'utilisateur. Cela fonctionne un peu de cette façon :
4 lignes :
*
* *
* *
*****

Je ne vous demande pas le code (evidemment je souhaite le trouver tout seul) mais j'ai un petit problème lors de mes essais, voici le code source :
#include <stdio.h>
#include <stdlib.h>
#include"lines.h"

int main()
{
    int nbl=5;
    int j=(nbl-1);

    void firstLine(j);
    return 0;
}


et l'header :
#ifndef LINES_H_INCLUDED
#define LINES_H_INCLUDED

void firstLine(int j)
{
    int i=0;
    do{
    printf(" ");
    i++;
    }while (i<j);
    printf("#\n");
}
#endif // LINES_H_INCLUDED


Mon problème est le suivant : lorsque je lance le programme, rien ne s'affiche, pas un espace ou un #. J'ai l'impression de n'avoir fait aucune erreur de syntaxe et mon compilateur (code::blocks) ne m'affiche aucune erreurs non plus.

Merci de me dire pourquoi mon petit bout de code ne fonctionne pas.

Amicalement, SeKoYa

6 réponses

choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
int main()
{
int nbl=5;
int j=(nbl-1);

firstLine(j);
return 0;
}

et comme ça ?
1
SeKoYa Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   18
 
Evidemment. J'ai rajouté void devant ma fonction.
Désolé pour l'erreur bateau et encore merci à vous Choubaka.

Bonne continuation sur CCM.
SeKoYa
0
AXER
 
le printf("#"); doit etre dans la boucle
0
SeKoYa Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   18
 
Merci pour votre réponse rapide AXER, mais je ne souhaite l'afficher qu'une fois.
De plus, mes espaces ne s'affichent pas eu non plus.
Que faire ?? Mon but serai d'afficher :
espace-espace-espace-espace-#
Cela à l'aide de ma boucle.

Merci d'avance pour vos réponses.
SeKoYa
0
SeKoYa Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   18
 
Désolé mais je ne cherche pas à changer de langage mais plutôt à comprendre pourquoi mon bout de code ne fonctionne pas.

Merci d'avance pour vos réponses.
SeKoYa
0
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
ce n'est pas un problème de visibilité ?

Ton int J ne doit il pas être déclaré en dehors de tes méthodes pour l'entièreté de ta classe ??
dans ta méthode main, il te suffit de lui donner sa valeur
0
SeKoYa Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   18
 
Euh... merci pour ta réponse Choubaka, mais en français ça donne quoi ??
Désolé mais je n'ai pas tout compris, que veux-tu dire par "déclaré en dehors de tes méthodes" ??

Merci d'avance pour vos réponses.
SeKoYa
0

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

Posez votre question
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
j'aurais du le voir plus tôt .. mais bon, on cherche toujours plus loin
0
aigredoux
 
a = 1
b = "#"

while (a<6):
print b*a
a=a+1

# c'est là qu'on voit la simplicité imbattable de python.
-1