Rechercher : dans
Par :

C : Boucle ne s'éxécute pas

Dernière réponse le 14 mar 2009 à 12:14:55 SeKoYa, le 14 mar 2009 à 10:40:15 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Firefox 3.0.7

Meilleures réponses pour « C : Boucle ne s'éxécute pas » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Langage C - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Langage C++ - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

AXER, le 14 mar 2009 à 11:25:45

Le printf("#"); doit etre dans la boucle

Répondre à AXER

2

SeKoYa, le 14 mar 2009 à 11:30:23

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

Répondre à SeKoYa

3

aigredoux, le 14 mar 2009 à 11:43:20

A = 1
b = "#"

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

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

Répondre à aigredoux

4

SeKoYa, le 14 mar 2009 à 11:48:27

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

Répondre à SeKoYa

5

choubaka, le 14 mar 2009 à 11:51:58

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 Chouba,
Rhâââgnagna

Répondre à choubaka

6

SeKoYa, le 14 mar 2009 à 11:56:04

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

Répondre à SeKoYa

7

choubaka, le 14 mar 2009 à 12:03:59
  • +1

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

firstLine(j);
return 0;
}

et comme ça ?
Chouba,
Rhâââgnagna

Répondre à choubaka

8

SeKoYa, le 14 mar 2009 à 12:10:33

Evidemment. J'ai rajouté void devant ma fonction.
Désolé pour l'erreur bateau et encore merci à vous Choubaka.

Bonne continuation sur CCM.
SeKoYa

Répondre à SeKoYa

9

 choubaka, le 14 mar 2009 à 12:14:55

J'aurais du le voir plus tôt .. mais bon, on cherche toujours plus loin Chouba,
Rhâââgnagna

Répondre à choubaka
Collection CommentÇaMarche.net