Problème avec do while

Résolu/Fermé
misterG88 Messages postés 13 Date d'inscription dimanche 10 mars 2013 Statut Membre Dernière intervention 22 janvier 2014 - Modifié par pijaku le 22/01/2014 à 08:02
misterG88 Messages postés 13 Date d'inscription dimanche 10 mars 2013 Statut Membre Dernière intervention 22 janvier 2014 - 22 janv. 2014 à 15:27
salut !!!!
Aidez moi svp j'ai un soucis avec mon programme .Il consiste à afficher les 20 premiers nombres impairs,je dois taper "c "pour continuer et "a" pour sortir du programme.
cordialement,

Voici mon code
#include<stdio.h>

int main()
{
    char comd='c';
    int i;
    int compteur=0,cpt=0;
  
   
    do
   {
        printf("saisir un chiffre\n");
       scanf("%d",&i);
         for(i=1;compteur<=20;i++)
        {
      
          if(i%2!=0)
          {
           printf("%d",i);
           printf("\n");
           compteur++;
          }
      
        }  
           printf("\n");
           printf("entrer c ou a\n");
           scanf("%c",&comd);
    } 
             
       while(comd!='a');
    
    
}

3 réponses

Dubphonic Messages postés 11 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 21 janvier 2014 2
21 janv. 2014 à 15:52
Quel langage ?
0
misterG88 Messages postés 13 Date d'inscription dimanche 10 mars 2013 Statut Membre Dernière intervention 22 janvier 2014
22 janv. 2014 à 03:25
langage C merci !!
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
Modifié par chico200987 le 21/01/2014 à 15:55
Salut,

Tu veux afficher les 20 premiers nombres impairs ok, mais à quoi sert la valeur que tu saisies puisque juste après ton scanf tu fais

for(i=1;compteur<=20;i++) 


Donc tu écrases direct la valeur que tu viens de récolter..

Il doit manquer un bout de ton énoncé, tu dois afficher les 20 premiers nombre à partir du nombre saisi ? Ou jusqu'au nombre saisi ? Ou autre ?

Et ta variable cpt sert à quoi ?

Ah que coucou c'est moi.
0
misterG88 Messages postés 13 Date d'inscription dimanche 10 mars 2013 Statut Membre Dernière intervention 22 janvier 2014
Modifié par misterG88 le 22/01/2014 à 00:12
merci Chico !!!! tu as raison on doit afficher les 20 premiers nombre impairs à partir du nombre saisi et on doit taper "c "pour continuer et "a" pour sortir du programme.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
22 janv. 2014 à 08:41
Bonjour,

cpt=0;
Tu ne te sers pas de cette variable, autant ne pas la déclarer pour éviter de s'emmêler les pinceaux.

scanf("%d",&i);
for(i=1;compteur<=20;i++)

Confusion de variables. Si j'étais toi, je mettrais des noms plus parlant. Par exemple :
int base;
...
scanf("%d",&base); getchar();
for (i=base; i<21; i++) {


compteur++;
A quoi ça sert ? En lisant ta consigne, tu n'as pas besoin de compter le nombre d'impairs affichés.

scanf("%c",&comd);
N'oublie pas de rajouter un getchar(); juste après le scanf(); pour vider le '\n' restant dans le buffer clavier. Idéalement, il faudrait faire une belle fonction.

Et tu as oublié "return 0;" en fin de main() pour dire que tout s'est bien déroulé.

Cdlt,
0
misterG88 Messages postés 13 Date d'inscription dimanche 10 mars 2013 Statut Membre Dernière intervention 22 janvier 2014
22 janv. 2014 à 15:27
Merci Fiddy you saved my day .ca marche maintenant .merci a vous tous !!!!
Cdlt,
0