Probléme avec un code en c

strome -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, j ai un probléme avec un petit code tous simple en c :



long compteur;

for (compteur = 0 ; compteur < 10 ; compteur++)
{
printf("net send 153.10.85.\n");
}

normalment ca devrait m afiché 10 fois le msg net send ........ mais le compilateur bloc dès la fonction long
ps: compilateur code block projet sous console
et il me fait pareil pour mes autres codes -_- je peut avoir de l'aide svp
et si possible vous pouvez me dire comment faire une boucle infinie?
A voir également:

13 réponses

Yuku Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   4
 
Pareil, aucun problème avec Dev-C++, d'ailleurs je te le conseille perso :)

D'autre part, j'aime pas trop for, je préfère les boucles if ou while / do...while.

Par exemple tu peux faire ça comme ça :
    int compteur = 0;

    do{
             printf("net send 153.10.85.\n");
             compteur++;
    }while(compteur < 10);


PS : je te conseille de définir ton compteur en int, puisqu'il s'agit d'un compteur, il ne peut donc s'agit comme valeurs que d'entiers (1, 2, 3...)... logiquement, tu ne peux pas avoir 2.5, puis 3.9, etc...

D'ailleurs je ne me sers pas de Code:Blocks mais il est possible que ce soit dû à ça : le fait que tu veuilles l'incrémenter alors qu'il s'agit d'un long...

Tiens moi au courant pour mon code, s'il marche pour toi et si ça marche en mettant un
int compteur;

A plus et bonne chance !
1
strome Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   7
 
oui oui je sais pour les {} et pause ne sert pas pour code block pour dev c++ j utilise
heu par contre quél diréctives préprocésseur il faut pour un programe comme ca?
1
angelx1 Messages postés 1453 Date d'inscription   Statut Membre Dernière intervention   110
 
printf("net send 153.10.85.\n");

J'ai fait du C , masi je ne vois pas ce que c'est ..
Pourquoi ne pas utiliser %ld ?

Ca fait lontemsp que j'en ai pas fait , mais je pense qu'il faut definir long , non ?
long = 0 ;
-1
strome Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   7
 
printf("net send 153.10.85.\n");
c'est le méssage a écrire
et si je ne me trompe pas le %ld c'est pour une réponse mon but est de répété le msg "net send 153.10.82." a cahque fois que l utilisateur fait entré
pour la valeur du long elle y est la: for (compteur = 0.....
ps: je me trompe peu étre pour le %ld je suis novice en c
-1

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

Posez votre question
angelx1 Messages postés 1453 Date d'inscription   Statut Membre Dernière intervention   110
 
Bah , regarde les doubles points partout ...
Essaye avec long = 0 ....
sinon le %ld sert a renvoyer une valeur ... J'avaus pas compris ce que tu attendais du programme , mais oui , tu as raison ^^
Pour faire une boucle infini , regarde sur le site du zero , le tutoriel C est super ! ( avec corrige :) )
-1
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Bonsoir,

Je viens de tester cettte boucle, ça m'affiche :

net send 153.10.85.
net send 153.10.85.
net send 153.10.85.
net send 153.10.85.
net send 153.10.85.
net send 153.10.85.
net send 153.10.85.
net send 153.10.85.
net send 153.10.85.
net send 153.10.85.


int main () { 
long compteur; 

for (compteur = 0 ; compteur < 10 ; compteur++) 
{ 
printf("net send 153.10.85.\n"); 
} 

return 0; 

}


P.S. C'est quoi le problème exactement ?
-1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut
Pour faire boucle infinie :
while(1){
   puts("toto");
}

Cdlt
-1
Yuku Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   4
 
Ah et puis voilà une boucle infinie très facile à comprendre :
    int compteur = 0;

    do{
             printf("net send 153.10.85.\n");
    }while(compteur < 1);


On déclare le compteur à 0 et tant que le compteur est inférieur à 1, on affiche le message.
Or comme le compteur vaut 0 et qu'il n'est jamais incrémenté ou modifié, il sera toujours inférieur à 1 et donc le message se répète indéfiniment :)
-1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
C'est dommage d'utiliser une variable pour donner une condition toujours vraie.
-1
Yuku Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   4
 
C'est plus explicite pour les débutants qui ne comprennent pas forcément les booléens...
-1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
compteur > 1 c'est un boolen ;)
Et si tu mets while ( 0>1) ça revient exactement au même avec en plus l'économie d'une variable.
-1
strome Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   7
 
int compteur = 0;

do{
printf("net send 153.10.85.\n");
}while(compteur < 1);
ce code ne marche pas mais je pence que le probléme vien de mes compilateur sur tout mes code il bloc int char ou long sur code block et dev c++
-1
Yuku Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   4
 
En même temps faut quand même glisser ça dans un main(), et ajouter 1 ou 2 directives de préprocesseurs et un system("PAUSE"); hein...
-1
Yuku Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   4
 
Hum...

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

Je pense que ça suffira :)
-1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Juste #include <stdio.h>
Pas besoin de stdlib.
-1
strome Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   7
 
a ok ca c'est bon je le met tout le temps
-1