Pb code

rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007 - 15 mai 2004 à 12:47
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007 - 16 mai 2004 à 12:29
voici le code je veux cree une boucle infini qui rempli tout l'ecran de nombre mais le prob c que ds le code ci dessous il y a en bas un demi ligne qui n'est pas rempli

#include <stdlib.h>

main()
{
int sortie = 0;
int i=1;
int j=1;

do
{
randomize();
sortie --;

for(i=0;i<80;i++)
{
gotoxy(1+i,j);
printf("%d",random(9)+1);
for(j=0;j<25;j++)
{
gotoxy(i,1+j);
printf("%d",random(9)+1);
}
}
}while(sortie !=100);
getch();
return(0);
}

41 réponses

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
15 mai 2004 à 12:54
ca fait koi si tu enleves les gotoxy?
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
15 mai 2004 à 13:24
euh la meme chose , il ya toujours une demi-bande en bas a droite qui n'est pas rempli par des nombres
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
15 mai 2004 à 13:27
en fait c a cause de la rapidité de ton pc !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
15 mai 2004 à 13:29
Hum,
Plusieurs remarque a faire!

1) Alors la le pire de pire!!!
int sortie = 0;
do {
sortir--;
...
}while(sortir != 100)


2) A quoi ca sert d'utiliser des gotoxy ? Tu peux utiliser \t et \n si c'est simplement pour remplir l'ecran de nombre aleatoire!

3)
int i=1;
int j=1;

for(i=0;i<80;i++)
{
...
}

Pareil pour j!

Il est inutile d'initialiser des variables pour ensuite les traités dans une boucle for!

4) Et voila la surprise ... Le meilleure pour la fin !
main()
{
  return(0);
} 


Bon j'en arrete ici pour les commentaires !
Mais au fait tu t'es inspiré de la "Bible des mots tordu C/C++" pour faire ce programme ?

Bref, voila comment faire simplement :
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void)
{
int		nAlea;
bool	c = true;

/*On initialise la graine*/
srand(time(NULL));

/*On boucle indéfiniment : while(c) <=> tant que "c" est vrai*/
while(c)
{
/*On genere le nombre aleatoirement*/
nAlea = rand();
/*On affiche le nombre avec une tabulation entre chaque nombre*/
printf("%i\t",nAlea);
}

return 0;
}


Voili voilou...
A l'avenir demande pourquoi est ce que tu fais tout ca alors qu'il y a plus simple!

Samir
0

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

Posez votre question
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
15 mai 2004 à 13:41
DeAtHCrAsH ==>

main()
{
return(0);
}

c'est correct ? qu'est ce qui te gene?
0
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
15 mai 2004 à 13:43
ok jaimerai te poser quelque question sur ton code pour remplir un ecran de nb alea
a quoi sert
-bool c = true;
-srand(time(NULL));
-\t(je sais que \n sert a sauter des ligne)
je suis un debutant
et pour le tuto jai pris un qui etait sur developez.com
pour en finir le tuto est pour turbo c

merci quand meme de m'avoir eclairée
0
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
15 mai 2004 à 13:45
et encore un chose ton code rempli par colone
mais sa ne rempli pas tout lespace de la fenetre
moi je voudrais vraiment une boucle qui rempli toute la fenetre
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
15 mai 2004 à 13:47
djl> L'oubli d'avoir specifié le type de main!
int main() -> return 0;

Tu pourrais très bien mettre char main() -> return 10; et le programme compilerais quand meme ... Mais ce n'est pas correcte pour autant.

C'est pas parceque les compilateurs actuels accepte cette syntaxe qu'il faut coder comme des crados.
0
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
15 mai 2004 à 13:47
et en plus
jai compris comment a quoi sert \t
quand on nen met pas
il ya toujours une petite demi ligne qui n'est pas rempli ,
faut til mettre un boucle d'attente???
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
15 mai 2004 à 13:52
DeAtHCrAsH ==> dis moi quel est le type implicite en c ansi?
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
15 mai 2004 à 13:53
- le /t est le caractere tabulation.
- bool c true c'est pour la boucle while(c){ ... }, ca dis a la boucle de "tourner" tant que c est vrai(true) ... Elle tourne tout le temps dans mon cas... Pour mieux comprendre mets c false; juste avant la fin de la boucle et tu verras que tu sortira de la boucle a cet instant.

- srand(time(NULL)) permet d'initialiser la graine du générateur de nombre aléatoire. le generateur de nombre aléatoire n'est rien de plus qu'une fonction qui se base sur un nombre de départ et qui te donné d'autre nombre. La graine correspond au nombre de depart pour la fonction.
Si tu n'initialise pas la graine, tu remarqueras que ton programme te sortiras toujours les memes nombres aleatoire et dans le meme ordre.

Pour que ca écrive dans toute la fenetre tu as juste a enlever le \t .

Voili voilou ...

A++ et bonne continuation ...

Samir
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
15 mai 2004 à 13:59
djl> c'est un type int ... C'est pas ca que je voulais te dire!

Le prototype d'une fonction est le suivant :

type MaFonction(MesParams)
{
    ....
    return meme_type_qe_ma_fonction;
}

Le prototype d'une procédure est le suivant

MaProcedure(MesParams)
{
  ....
}


Mieux vaut coder clairement et "correctement"!
Les compilateurs rectifie beaucoup d'erreur de code sans meme qu'on s'en rende compte, et on pense avoir juste alors que c'est faut! Il ne faut pas oublier les bases instaurées par le C !

Samir
0
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
15 mai 2004 à 13:59
merci de tes explication
mais malgré que le code est mieux il ya toujours cette petite demi ligne qui n'est pas rempli du fait de la vitesse ou tout le code est executé n'y a til aucun moyen de la faire disparaitre ??
sinon je me debroullerai avec
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
15 mai 2004 à 14:01
sinon tu stock tous les nombres d'une ligne dans un tablo et tu l'affiches... ou un truc dans le genre !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
15 mai 2004 à 14:02
ou alors yatil moyen de remplir par colone
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
15 mai 2004 à 14:03
Rafffel> C'est pas normal qu'il te manque des lignes. SI tu prends mon code tel quel et que tu enleve juste le \t, le programme devrait t'afficher des nombres sur toutes les lignes.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
15 mai 2004 à 14:05
DeAtHCrAsH ==> ! la base la plus profonde du c c'est le type int, avant char et void n'existait pas

int main() est rigoureusement identique à main()

en c/c++ les procedure n'existe pas, avnt que le type void existe elles renvoyait un int...

aujourd'hui main() est correcte en c, seul c et c++ necessite un type explicite
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
15 mai 2004 à 14:06
pardon, je ve dire seul c99 et c++
0
rafffel Messages postés 37 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 5 octobre 2007
15 mai 2004 à 14:06
oui il marche tres bien mais la derniere ligne s'affiche a moitié et ceci me gene legerement on ne voit pas complement s'afficher la dernière ligne
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
15 mai 2004 à 14:13
rafffel> hum, c'est un probleme de rafraichissement alors... dans ce cas tu n'y peut rien, tu auras toujours ce décalage...

djl> vi vi =)

A++ all et bonne prog, puis bonne aprem ...

Samir
0
Rejoignez-nous