Programmation » A peine je m'y mets que j'ai déjà des problèmes >.<...
Rappel du message précédent
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 27/08/2011 @ 18:38:12,
Par crodilusUn if après le scanf ?
Effectivement sa marche, la phrase s'affiche, mais j'ai toujours le menu qui revient quand même !
Dernière édition: 27/08/2011 @ 18:38:44
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 27/08/2011 @ 18:58:42,
Par philfrSi tu ne veux pas retourner au menu, pourquoi faire un while ?
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 27/08/2011 @ 19:38:20,
Par crodilusSi tu ne veux pas retourner au menu, pourquoi faire un while ?
Car dans l'exercice il y avait une boucle je sais c'est très naif de ma part !
Mais bon c'est résolu merci !
Amicalement crodilus.
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 29/08/2011 @ 13:22:01,
Par crodilusAlors je viens de terminer les pointeurs et j'aimerais vous posez une question pour voir si j'ai bien compris !
En gros les pointeurs servent à économiser de la mémoire ?
En gros les pointeurs servent à économiser de la mémoire ?
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 29/08/2011 @ 13:42:53,
Par zionNon
Je suis le Roy
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 29/08/2011 @ 14:07:27,
Par blietaerbah....mmmh...un peu quand-même, ne fusse-ce que par effet de bord: dans le sens où on utilise surtout les pointeurs pour pas trimballer/(re)copier des grosses structures dans tout le code/programme, cela économise aussi un peu la mémoire.
Après biens sûr on peut parler perfs,...
Et aussi faciliter les tris, les trees, les accès à des tables,..
Après biens sûr on peut parler perfs,...
Et aussi faciliter les tris, les trees, les accès à des tables,..
Et au besoin s'arrêter.
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 29/08/2011 @ 14:50:21,
Par crodilusOui en réfléchissant un peu c'est vrai que question mémoire ça ne change pas grand chose
vu que :
1)le pointeur (adresse1) va enregistrer un adresse(adresse2)
2)A l'adresse 2 on aura une variable que l'on pourra utiliser ou modifier
mais si on veut faire un pointeur grâce à l'adresse 2 on recommence l'opération avec l'adresse 2 comme adresse de départ et une adresse 3 pour l’utilisation de la variable.
Mwouai !
vu que :
1)le pointeur (adresse1) va enregistrer un adresse(adresse2)
2)A l'adresse 2 on aura une variable que l'on pourra utiliser ou modifier
mais si on veut faire un pointeur grâce à l'adresse 2 on recommence l'opération avec l'adresse 2 comme adresse de départ et une adresse 3 pour l’utilisation de la variable.
Mwouai !
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 29/08/2011 @ 17:51:40,
Par zionbli> Je pense pas que sa réflexion allait aussi loin que ça, et quand je lis la suite je suis persuadé du contraire
Je suis le Roy
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 01/09/2011 @ 10:42:47,
Par crodilusbli> Je pense pas que sa réflexion allait aussi loin que ça, et quand je lis la suite je suis persuadé du contraire
Si je veux en faire mes études il faut que je creuse un minimum !
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main ( int argc, char** argv )
- {
- int nombreMystere = 0, nombreEntre = 0;
- int compteur = 0;
- int regles = 0;
- const int MAX = 100, MIN = 1;
- srand(time(NULL));
- nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
- printf("Bonjour et bienvenue a mon petit jeux de devinete!!! Tape 1 pour jouer ou 2 pour voir les regles BONNE CHANCE!!! \n\n");
- scanf("%d", ®les);
- switch (regles)
- {
- case 1:
- do
- {
- printf("Quel est le nombre mystere? ");
- scanf("%d", &nombreEntre);
- if (nombreMystere > nombreEntre)
- printf("C'est plus !\n\n");
- else if (nombreMystere < nombreEntre)
- printf("C'est moins !\n\n");
- else
- printf ("Bravo, vous avez trouve le nombre mystere en %d coups!!\n\n", compteur);
- compteur++;
- } while (nombreEntre != nombreMystere);
- break;
- case 2:
- printf("Les regles du jeux sont tres faciles il suffit de deviner le bon nombre entre 1-100. Essaye de le trouver en un minimum de temp et c'est gange!!!");
- break;
- }
- return 0;
- }
J'ai une question sur le compteur. Comment se fait-il qu'il comptabilise tout les
coups ? Car j'aurais eu tendance à penser qu'il n'aurait que comptabilisé le dernier vu qu'il se trouvait dans la condition else ... ? !
Moi j'avais mis mon compteur dans un printf juste après le premier printf, et du fait il me mettait le nombre de coups joués à chaque fois que l'on tapait un chiffre.
Programmer ce n'est pas difficile mais ce n'est pas facile non plus !
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 01/09/2011 @ 10:49:59,
Par dedeFaut encadrer d'accolades les instructions de ton else.
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 01/09/2011 @ 10:58:39,
Par crodilusFaut encadrer d'accolades les instructions de ton else.
Effectivement ! Mais je ne vois pas toujours pas pourquoi il comptabilise tout les coups, j'aimerais avoir une explication sur le fonctionnement
Vous pourriez me dire : "ne te prends pas la tête tu sais comment on fait et ne va pas chercher plus loin"
Mais ce genre de réflexion m’horripile car je ne comprends pas le pourquoi du comment !
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 01/09/2011 @ 11:08:10,
Par ovhVu l'indentation de ton code, on voit bien que tu veux mettre compteur++ dans le bloc else, mais en C ça ne marche pas comme ça. Tout bloc doit être délimité par des accolades. Contrairement à Python, C ne tient pas compte de l'indentation de ton code, et donc pour lui compteur++ est en dehors de ton else.
Je n'ai rien à voir avec www.ovh.com
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 01/09/2011 @ 11:21:57,
Par crodilusVu l'indentation de ton code, on voit bien que tu veux mettre compteur++ dans le bloc else, mais en C ça ne marche pas comme ça. Tout bloc doit être délimité par des accolades. Contrairement à Python, C ne tient pas compte de l'indentation de ton code, et donc pour lui compteur++ est en dehors de ton else.
Merci bien pour cette réponse !
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 01/09/2011 @ 12:04:26,
Par PinouChacun ses habitudes mais pas mal de programmeurs (en tout cas dans ces langages) te conseilleront de TOUJOURS mettre des {} même pour des bloc d'une ligne.
Ça évite ce genre d'erreur et pour certains c'est plus lisible.
Exemple :
Ça évite ce genre d'erreur et pour certains c'est plus lisible.
Exemple :
- if (nombreMystere > nombreEntre)
- {
- printf("C'est plus !\n\n");
- }
- else if (nombreMystere < nombreEntre)
- {
- printf("C'est moins !\n\n");
- }
- else
- {
- printf ("Bravo, vous avez trouve le nombre mystere en %d coups!!\n\n", compteur);
- compteur++;
- }
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 04/09/2011 @ 13:00:38,
Par crodilusLes questions continues !
je n'ai pas le résultat de l'addition mais un tout au nombre, je pense que c'est l'adresse où va se trouver la valeur de l'addition. Mais quel signe dois-je mettre pour ne pas avoir l'adresse mais la valeur s'y trouvant ?
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[])
- {
- int tableau[4] ={5,8,11,13}, i = 0;
- int resultat = 0;
- for (i > 0 ; i < 4 ; i++)
- {
- printf("%d \n", tableau[i]);
- }
- printf ("\n%d+%d+%d+%d=%d\n",tableau[0],tableau[1],tableau[2],tableau[3], &resultat);
- return 0;
- }
je n'ai pas le résultat de l'addition mais un tout au nombre, je pense que c'est l'adresse où va se trouver la valeur de l'addition. Mais quel signe dois-je mettre pour ne pas avoir l'adresse mais la valeur s'y trouvant ?
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 04/09/2011 @ 13:59:46,
Par Clandestino1. Comment veux-tu que 'resultat' contienne quoi que ce soit, tu n'y stocke rien si ce n'est une valeur initiale de 0 ;
2. Ce n'est pas '&resultat' mais 'resultat' ; '&resultat' retourne l'adresse en mémoire de la variable, par sa valeur.
3. On conçoit très bien que l'apprentissage de la programmation soit un peu rebutant, mais si tu demandes de l'aide à tout bout de champ, tu risque de ne pas apprendre beaucoup par toi-même...
2. Ce n'est pas '&resultat' mais 'resultat' ; '&resultat' retourne l'adresse en mémoire de la variable, par sa valeur.
3. On conçoit très bien que l'apprentissage de la programmation soit un peu rebutant, mais si tu demandes de l'aide à tout bout de champ, tu risque de ne pas apprendre beaucoup par toi-même...
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 04/09/2011 @ 14:11:55,
Par crodilus3. On conçoit très bien que l'apprentissage de la programmation soit un peu rebutant, mais si tu demandes de l'aide à tout bout de champ, tu risque de ne pas apprendre beaucoup par toi-même...
Je suis d'accord avec toi j'ai peut-être trop tendance à me retourner directement sur le forum avant de cherche par moi même. Proportionnellement je répond peut-être à 35 % de mes interrogations tandis que vous répondez au 65 restant ! Je pense que c'est un mauvais réflexe qui peut me pénaliser par la suite. Une certaine perte d'autonomie et de capacité de réaction face à un problème.
J'ai peut-être avalé un peu trop de matière sans prendre le recul nécessaire pour voir si j'avais tout assimiler correctement !
Je pense que je vais me repasser les 180 pages que j'ai fait, en synthétisant le points important et en refaisant les exercices une nouvelle fois !
Merci de ton intervention ! Tu m'as aidé à remettre les pendules à l'heure et à me recadrer dans mon apprentissage!
Amicalement crodilus !
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 04/09/2011 @ 16:21:49,
Par maxfor (i > 0 ; i < 4 ; i++)
Que vient faire ce i>0 dans l'expression d’initialisation ?
Dernière édition: 05/09/2011 @ 07:59:32
Trololo
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 04/09/2011 @ 17:07:23,
Par crodilusQue i=0 ou i>0 j'ai juste fait ça pour voir si quelque chose changeais dans l'exécution.
Dernière édition: 04/09/2011 @ 17:44:29
Dernière édition: 04/09/2011 @ 17:44:29
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 09/09/2011 @ 13:46:30,
Par crodilusBonjour à tous et à toutes après quelques jours de travail seul et un bon nombre de questions auxquelles j'ai su répondre par moi même il y en a une que je n'arrive quand même pas à résoudre !!
L'exercice que j'ai fait consistait à transformer ce programme ci :
En un programme qui comporterait deux fonction : genereNombre et NombreMystere.
Voici se que j'ai fait :
En faite au début j'ai mis mon
dans la boucle do...while de la fonction int main mais le programme ne s'arrêtait pas de dire c'est plus ou c'est moins lorsque je tapais un nombre. J'ai résolu le problème en l'injectant dans la fonction compareNombres.
J'aimerais savoir pourquoi cela ne fonction pas lorsque c'est placé dans la boucle do...while de la fonction int main ??
Car je ne vois pas d'où vient le problème, mon nombreMystère et mon nombreEntre sont tout les deux définis lorsqu'ils vont être injecter dans la fonction generenombre.
Amicalement crodilus.
Dernière édition: 09/09/2011 @ 13:55:49
L'exercice que j'ai fait consistait à transformer ce programme ci :
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main ( int argc, char** argv )
- {
- int nombreMystere = 0, nombreEntre = 0;
- const int MAX = 100, MIN = 1;
- // Génération du nombre aléatoire
- srand(time(NULL));
- nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
- /* La boucle du programme. Elle se répète tant que l'utilisateur
- n'a pas trouvé le nombre mystère */
- do
- {
- // On demande le nombre
- printf("Quel est le nombre ? ");
- scanf("%d", &nombreEntre);
- // On compare le nombre entré avec le nombre mystère
- if (nombreMystere > nombreEntre)
- printf("C'est plus !\n\n");
- else if (nombreMystere < nombreEntre)
- printf("C'est moins !\n\n");
- else
- printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
- } while (nombreEntre != nombreMystere);
- return 0;
- }
En un programme qui comporterait deux fonction : genereNombre et NombreMystere.
Voici se que j'ai fait :
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int genereNombre ()
- {
- int nombre=0;
- const int MAX = 100, MIN = 1;
- srand (time(NULL));
- nombre = (rand () % (MAX - MIN + 1)) + MIN;
- return nombre;
- }
- int compareNombres (nombreEntre,nombreMystere)
- {
- int compteur=0;
- do
- {
- printf("\nQuel est le nombre ? ");
- scanf("%d", &nombreEntre);
- if (nombreMystere > nombreEntre)
- printf("\nC'est plus !\n");
- else if (nombreMystere < nombreEntre)
- printf("\nC'est moins !\n");
- else
- printf ("\nBravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", compteur);
- compteur++;
- } while (nombreEntre != nombreMystere);
- return nombreEntre;
- }
- int main ( int argc, char** argv )
- {
- int nombreMystere = 0, nombreEntre = 0;
- const int MAX = 100, MIN = 1;
- nombreMystere = genereNombre(MIN, MAX);
- printf("Bienvenue dans le jeu du nombre mystere !\n\nLe principe est tres simple, l'ordinateur va enregistrer un nombre entre 0 et \n100 et vous devrez le trouver !\n");
- do
- {
- compareNombres(nombreEntre, nombreMystere);
- } while (nombreEntre != nombreMystere);
- return 0;
- }
En faite au début j'ai mis mon
- printf("\nQuel est le nombre ? ");
- scanf("%d", &nombreEntre);
dans la boucle do...while de la fonction int main mais le programme ne s'arrêtait pas de dire c'est plus ou c'est moins lorsque je tapais un nombre. J'ai résolu le problème en l'injectant dans la fonction compareNombres.
J'aimerais savoir pourquoi cela ne fonction pas lorsque c'est placé dans la boucle do...while de la fonction int main ??
Car je ne vois pas d'où vient le problème, mon nombreMystère et mon nombreEntre sont tout les deux définis lorsqu'ils vont être injecter dans la fonction generenombre.
Amicalement crodilus.
Dernière édition: 09/09/2011 @ 13:55:49
A peine je m'y mets que j'ai déjà des problèmes >.<...
Publié le 09/09/2011 @ 16:31:38,
Par PinouC'est un peu vieux dans mon cerveau ramoli mais tu dois pas déclarer tes variables en C ???
Un truc du genre :
int compareNombres (int nombreEntre, int nombreMystere)
???