FORUM Tom's Hardware » Programmation » C / C++ / Java » doucle do while ??? problème ... :s
 

doucle do while ??? problème ... :s

Il y a 312 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : doucle do while ??? problème ... :s
 
Plus d'informations

Bonjour !!!
Je suis débutant en C et mon prof nous a demandé de faire un programme regroupant le randomize et les boucle (do while).
Le programme consiste :
l'ordinateur choisi un nombre entre -1 millard et +1milliard, il doit être placé +/- au milieu de l'écran. Jusque la aucun problème ...
Mais il doit s'affichier une question "Voulez vous continuer ? (O/N)"
j'ai réussi a lui faire dire que lorsqu'on appuie sur "O" il indique "OK" et quand on appui sur "N" ou tout les autre touches :s "ERREUR" (mais je n'ai pas réussi a lui dire de recommencer o débu ... je crois que c'est avec un DO WHILE qu'on fait sa, mais je n'ai pas réussi :fou: j'ai besoin d'aude pleazzze)
 
Encor une petite chose (optionel mais cela m'aiderais bcp ossi  :) ) c'est que le nombre que l'ordi choisi (le random), doit être dans un cadre, mais ce cadre doit varié car si le nombre choisi par l'ordi est de "1" ou de "256876", le cadre ne doit pas être de la même grandeur ...
 
Merci beaucoup pour vos réponses !!!
 
Je vous donne mon code source :
 
 
 #include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <process.h>
 
int var ;
int rep ;
int o ;
int n ;
 
  main()
  {
     randomize();
 clrscr();
 
 var=random (2000000000+1)-1000000000;
 gotoxy(35,12);
 printf("%d", var);
 
 
 gotoxy(25,20);
 printf("Voulez-vous continuer ? (O/N)" );
 
 scanf("%s", &rep);
 
 toupper(111);
 toupper(110);
 
  if (rep != 111 && 110)
     {
     gotoxy(25,22); printf("ERREUR" );
     }
    else
   if (rep == 111)
     {
     gotoxy(25,22); printf("ok" );
     }
 
  if (rep == 110)
     {
    gotoxy(25,22); printf("non" );
    (exit);
     }
 
 getch();
 
 }
 

Profil : Pointeur
Plus d'informations

:cry:
 
0/ et les balises [code] [:jofusion]
1/ variables globales [:jofusion]
2/ scanf d'un string dans un int [:jofusion]
3/ ouvre ton syllabus avant de poser des questions aussi basiques...  [:jofusion]
 
et pour la question du cadre, tu n'as qu'a mettre le cadre au maximum...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

J'ai pas de sylabus gars ...
Le prof nous donne des programme a faire en expliquant l'organigrame.
Et pour le cadre il doit se réduire ou se rétressir, jdoi po le mettre o maxi ..

Profil : Pointeur
Plus d'informations

bha pour le cardre, faut que tu calcul la longueur du nombre...
personnelement je ferait un sprint puis un strlen...
 
et si tu n'as pas de syllabi, faut une recherche sur google ou achete toi un livre (je pense que c'est la meilleur solution)...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
pourquoi faire cent fois la même chose ?
Plus d'informations

c'est quoi process.h ?
et c'est quoi gotoxy(25,20); ?
j'en ai jamais entendu parlé, mon compilateur non plus

Profil : Pointeur
Plus d'informations

c'est purment windowsien et pas du tout portable :/
 
enfin, je dit rien, on va pas l'embrouiller avec les code ansi :D


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
pourquoi faire cent fois la même chose ?
Plus d'informations

KangOl a écrit :

c'est purment windowsien et pas du tout portable :/
 
enfin, je dit rien, on va pas l'embrouiller avec les code ansi :D


 
surtout que ça marche pas sous windows :)))

XHTML 1.1 certified
Plus d'informations

Code :
  1. toupper(111);
  2. toupper(110);


et ça ça sert à rien ...tu peux le virer  
 
Et ta condition

Code :
  1. if (rep != 111 && 110)


est toujours vrai dès que rep != 111 donc même si tu tape N ça sort en erreur
Ton test devrait être plutôt

Code :
  1. if (rep != 'y' && rep != 'n')


Message édité par Rodolphe le 12-02-2005 à 02:46:47
XHTML 1.1 certified
Plus d'informations

Pour ton problème de boucle.
 

Code :
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     char c;
  5.     do
  6.     {
  7.          printf("Retry ? (y/n)\n" );
  8.          scanf("%s", &c);
  9.     }
  10.     while(c == 'y');
  11. }

Profil : Pointeur
Plus d'informations

je ne pense pas que tu l'aide en lui donnant la réponse toute faite. certe il devra l'adapter a son programme mais bon...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
XHTML 1.1 certified
Plus d'informations

Bah je lui donne un exemple de boucle do-while  je lui fais pas son programme.  
 
Surtout qu'il ya beaucoup de chose à reprendre dans son prog.
 
(D'ailleurs tu ne l'aide pas non plus en ne lui donnant pas d'expliquation et en lui disant d'acheter un bouquin :))

Profil : Pointeur
Plus d'informations

effectivement je te l'accorde :jap:
 
mon approche est plutot de le pousser a chercher par lui meme ;)


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Merci a tous !!!
j'ai réussi mon programme !!! (j'ai eu un peu d'aide d'un pote ki s'y connait mieu que moi, mais le principal c'est que j'ai compris comment on fais :d !!! merci !!)
 
enfin, j'ai encor un ptiproblème ... mais bon, c déja bien comme sa, ma boucle fonctionne ...
 
On me disait"Achette un boukin ..." Vous ne connaissez pas un bon bookin de C facil et agréable a lire ??? (je fais du C pas du C++, j'c ke c +/-  la même chose ...)
 
Mon CS :
 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
void module_2_prog (void);
int module_fin ();
 
 int nb;
 char choix_j;
 
main()
{
module_2_prog();
}
 
 /* M O D U L E du programme */
 
 void module_2_prog (void)
  {
   int on_fait_quoi_1= 0;
   do
   {
     clrscr();
     randomize();
     nb = random(2000000000)-1000000000;
     gotoxy(20,12); printf("Le nombre que l'ordinateur a tir‚ est :" );
     gotoxy(35,14); printf("[%d]", nb);
     getch();
     on_fait_quoi_1=module_fin();
   }while(on_fait_quoi_1==1);
  }
 
 /* M O D U L E de fin */
 
 int module_fin ()
 {
 int on_fait_quoi;
 int il_y_a_une_erreur;
 clrscr();
 do
 {
    textcolor(2);
    gotoxy(25,12); cprintf("Voulez-vous continuer ? (O/N)" );
    gotoxy(35,13); cprintf("[   ]" );
    gotoxy(37,13);
    scanf("%c", &choix_j);
    if(choix_j == 'o' || choix_j == 'n')
    {
      if(choix_j == 'o')
      {
       on_fait_quoi=1;
       return(on_fait_quoi);
      }
      else
      {
       on_fait_quoi = 0;
       return(on_fait_quoi);
      }
    }
    else
    {
     textcolor(420);
     gotoxy(22,15);
     cprintf("ERREUR, vous devez r‚pondre par O ou N ..." );
     il_y_a_une_erreur=1;
    }
 }while(il_y_a_une_erreur==1);
 getch();
 }
 

Profil : Pointeur
Plus d'informations

1/ encore des variables globales inutiles
2/

Code :
  1. main()
  2. {
  3. module_2_prog();
  4. }


tres utile...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » C / C++ / Java » doucle do while ??? problème ... :s
 

Annonces Google
Publicité