Initiliser une chaine de caratere
Résolu
yoshiro
Messages postés
496
Date d'inscription
Statut
Membre
Dernière intervention
-
yoshiro Messages postés 496 Date d'inscription Statut Membre Dernière intervention -
yoshiro Messages postés 496 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila j'essaie d'écrire un programme qui demande à l'utilisateur de saisir un nombre, ce nombre est calculé et il peut saisir autant de fois qu'il veux. Voici le code:
......
int nb;
char reponse[]="oui";
printf("\n Entrer un nombre compris entre 0 et 100");
scanf("%d",&nb);
nb=nb+1;
printf("\n Voulez vous recommencez ?");
scanf("%s",&rep);
while (reponse == rep)
{
printf("\n Entrer un nombre compris entre 0 et 100");
scanf("%d",&nb);
nb=nb+1;
}
.......
ça ne marche pas!!
PKOI???
MERCI D'AVANCE!!
voila j'essaie d'écrire un programme qui demande à l'utilisateur de saisir un nombre, ce nombre est calculé et il peut saisir autant de fois qu'il veux. Voici le code:
......
int nb;
char reponse[]="oui";
printf("\n Entrer un nombre compris entre 0 et 100");
scanf("%d",&nb);
nb=nb+1;
printf("\n Voulez vous recommencez ?");
scanf("%s",&rep);
while (reponse == rep)
{
printf("\n Entrer un nombre compris entre 0 et 100");
scanf("%d",&nb);
nb=nb+1;
}
.......
ça ne marche pas!!
PKOI???
MERCI D'AVANCE!!
A voir également:
- Initiliser une chaine de caratere
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Chaine musique bouygues - Accueil - Guide TV et vidéo
- L'équipe live foot chaine - Accueil - TV & Vidéo
9 réponses
Salut,
Tu n'as pas initialisé la chaîne rep. : char rep[4];
On utilise pas scanf("%s",&rep); mais scanf("%s",rep); Mais mieux encore, je te conseille d'utiliser fgets pour indiquer la taille.
En C, on compare les chaînes de caractères avec strcmp de string.h ou mieux encore strncmp
J'ai pas bien compris ce que tu voulais faire avec ton code, mais l'algorithme me paraît faux.
J'utiliserais pour ma part : do ... while.
Ce qui donne au final :
Si t'as des questions, n'hésite pas.
Note : N'oublie pas de poster ton code avec int main() et d'utiliser la balise "code" ( à droite de souligner ) ;)
Cdlt
Tu n'as pas initialisé la chaîne rep. : char rep[4];
On utilise pas scanf("%s",&rep); mais scanf("%s",rep); Mais mieux encore, je te conseille d'utiliser fgets pour indiquer la taille.
En C, on compare les chaînes de caractères avec strcmp de string.h ou mieux encore strncmp
J'ai pas bien compris ce que tu voulais faire avec ton code, mais l'algorithme me paraît faux.
J'utiliserais pour ma part : do ... while.
Ce qui donne au final :
#include <stdio.h> #include <string.h> int main(void){ int nb; char reponse[]="oui"; char rep[4]; do{ printf("\nEntrer un nombre compris entre 0 et 100 : "); scanf("%d",&nb); nb=nb+1; printf("\n Voulez vous recommencez ? "); scanf("%4s",rep); }while (strncmp(reponse,rep,sizeof(rep))==0); return 0; }
Si t'as des questions, n'hésite pas.
Note : N'oublie pas de poster ton code avec int main() et d'utiliser la balise "code" ( à droite de souligner ) ;)
Cdlt
écivez-vous ces codes dans bloc-note ?
en quel format l'enregistrez-vous .bat, .exe ???
désoler de mon ignorance, je débute...
en quel format l'enregistrez-vous .bat, .exe ???
désoler de mon ignorance, je débute...
Pour ma part, j'utilise vi. Mais après, tu peux utiliser ce que tu veux.
Si t'es sur windows, tu peux utiliser l'excellent notepad++.
Je ne te conseille pas bloc-note bien que cela fonctionne, puisqu'il ne t'apportera aucune coloration syntaxique et aucune indentation donc pas pratique, surtout pour un débutant.
Le programme, tu l'enregistres avec l'extension .c
Ensuite, tu as besoin d'un compilateur (un programme qui va traduire le code C en instruction binaire (compréhensible par la machine), et tu obtiendras un .exe (exécutable). Pour un compilateur, tu peux voir du côté de devCpp.
Cdlt
Si t'es sur windows, tu peux utiliser l'excellent notepad++.
Je ne te conseille pas bloc-note bien que cela fonctionne, puisqu'il ne t'apportera aucune coloration syntaxique et aucune indentation donc pas pratique, surtout pour un débutant.
Le programme, tu l'enregistres avec l'extension .c
Ensuite, tu as besoin d'un compilateur (un programme qui va traduire le code C en instruction binaire (compréhensible par la machine), et tu obtiendras un .exe (exécutable). Pour un compilateur, tu peux voir du côté de devCpp.
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok merci bcp ça marche!!
Mais je voudrais savoir quel code on utilise pour choisir un nombre aléatoirement!
Mais je voudrais savoir quel code on utilise pour choisir un nombre aléatoirement!
Pour choisir un nombre aléatoire :
T'inclues en header
Et encode ça donne :
Cdlt
T'inclues en header
#include <time.h> #include <stdlib.h>
Et encode ça donne :
srand(time(NULL)); //initialisation de la suite pseudo aléatoire int min = 0; int max = 10; double a = ((double)rnd() / RAND_MAX * (max - min + 1)) + min; //nombre aléatoire entre min et max.
Cdlt
ça ne marche pas voici le code
#include <time.h>
#include <stdlib.h>
...
int chiff,x;
const int min=1;
const int max=2;
printf ("salut");
srand(time(NULL));
x = ((double)rnd() / RAND_MAX * (1 + max - min) + min);
if (x == chiff)
{
printf("C'est vous qui commencez le premier");
}
else
{
printf ("C'est l'ordinateur qui commence le premier");
}
#include <time.h>
#include <stdlib.h>
...
int chiff,x;
const int min=1;
const int max=2;
printf ("salut");
srand(time(NULL));
x = ((double)rnd() / RAND_MAX * (1 + max - min) + min);
if (x == chiff)
{
printf("C'est vous qui commencez le premier");
}
else
{
printf ("C'est l'ordinateur qui commence le premier");
}
Normal, tu ne demandes pas à l'utilisateur de définir chiff.
Et si tu disais ce que tu souhaites faire exactement ? Le jeu du nombre ?
Sinon, je répète, quand tu postes, mets ton code entre deux balise "code" (le bouton est à droite du bouton souligner). Et poste également le prototype main et compagnie.
Cdlt
Et si tu disais ce que tu souhaites faire exactement ? Le jeu du nombre ?
Sinon, je répète, quand tu postes, mets ton code entre deux balise "code" (le bouton est à droite du bouton souligner). Et poste également le prototype main et compagnie.
Cdlt
ok
voici le programme
Le code du nombre aléatoirement ne marche pas !
help!!!
voici le programme
#include <stdlib.h> #include <time.h> #include <string.h> main() { int nb,b,j=1; char reponse[]="oui"; char rep[4]; const int min=0; const int max=100; srand(time(NULL)); b = ((double)rnd() / RAND_MAX * (1 + max - min) + min); printf("\n JEU DU NOMBRE CACHER"); printf("\n voulez vous rejouer ? "); scanf("%s",rep); printf("\n Entrer un nombre compris entre 0 et 100"); printf("\n Essai %d :",j); scanf("%d",&nb); while (strncmp(reponse,rep,sizeof(rep))==0) { while (j < 7 && nb != b) { if ( nb< 0 || nb>100) { printf("\n le nombre cache doit etre compris entre 0 et 100"); printf("\n Essai %d :",j); scanf("%d",&nb); j=j+1; } if ( nb > b) { j=j+1; printf("\n Plus petit"); } else { j=j+1; printf("\n plus grand"); } printf("\n Entrer un nombre compris entre 0 et 100"); printf("\n Essai %d :",j); scanf("%d",&nb); } if ( j == 7) { printf("\n TCHO PERDU!!"); printf("\n Le nombre a trouve etait: %d :",b); } else { printf(" \n bravo tu la enfin trouvee!!!"); printf("\n apres %d essais",j); } printf("\n voulez vous rejouer ? "); scanf("%s",rep); if (reponse == rep) { srand(time(NULL)); xb= ((double)rnd() / RAND_MAX * (1 + max - min) + min); j=1; } } system ("pause"); return 0; }
Le code du nombre aléatoirement ne marche pas !
help!!!
Salut,
Je t'ai corrigé deux trois trucs.
Pour continuer, il faut taper 1 au lieu de 'oui'. Sinon cela complique bien le code.
Dis moi si ça marche :
Je t'ai corrigé deux trois trucs.
Pour continuer, il faut taper 1 au lieu de 'oui'. Sinon cela complique bien le code.
Dis moi si ça marche :
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> int main() { int nb,b,j=1; int rep; const int min=0; const int max=100; srand(time(NULL)); b = ((double)rand() / RAND_MAX * (1 + max - min) + min); printf("\n JEU DU NOMBRE CACHER"); printf("\n voulez vous rejouer ? (pour oui taper 1)"); scanf("%d",&rep); printf("\n Entrer un nombre compris entre 0 et 100"); printf("\n Essai %d :",j); scanf("%d",&nb); while (rep) { while (j < 7 && nb != b) { if ( nb< 0 || nb>100) { printf("\n le nombre cache doit etre compris entre 0 et 100"); printf("\n Essai %d :",j); scanf("%d",&nb); j=j+1; } if ( nb > b) { j=j+1; printf("\n Plus petit"); } else { j=j+1; printf("\n plus grand"); } printf("\n Entrer un nombre compris entre 0 et 100"); printf("\n Essai %d :",j); scanf("%d",&nb); } if ( j == 7) { printf("\n TCHO PERDU!!"); printf("\n Le nombre a trouve etait: %d :",b); } else { printf(" \n bravo tu la enfin trouvee!!!"); printf("\n apres %d essais",j); } printf("\n voulez vous rejouer ? "); scanf("%d",&rep); if (rep) { srand(time(NULL)); b= ((double)rand() / RAND_MAX * (1 + max - min) + min); j=1; } } return 0; }