Debutant en C
ilusion2
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
ilusion2 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
ilusion2 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je débute le C et j'ai un petit problème... A chaques fois que je lance mon programme la console windows s'allume mais ne reste pas pour le défilement du programme. J'ai tout de meme essayé la commande getchar() mais rien y fait j'ai l'impression que mon programme s'effectue a une vitesse incroyable..
Sinon voici mon programme j'aimerai qu'il fasse la somme de deux nombres choisis par l'utilisateur mais malheuresement il y a un petit problème. Merci de votre aide et toutes suggestions.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int nombre1= 0;
printf("choisis ton nombre\n", nombre1);
scanf("nombre1%d" , &nombre1);
int nombre2= 0;
printf("choisis ton nombre\n", nombre2);
scanf("nombre2%d", nombre2);
int resultat = nombre1 + nombre2;
printf(" %d + %d = %d\n", nombre1, nombre2, resultat);
getchar();
return 0;}
je débute le C et j'ai un petit problème... A chaques fois que je lance mon programme la console windows s'allume mais ne reste pas pour le défilement du programme. J'ai tout de meme essayé la commande getchar() mais rien y fait j'ai l'impression que mon programme s'effectue a une vitesse incroyable..
Sinon voici mon programme j'aimerai qu'il fasse la somme de deux nombres choisis par l'utilisateur mais malheuresement il y a un petit problème. Merci de votre aide et toutes suggestions.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int nombre1= 0;
printf("choisis ton nombre\n", nombre1);
scanf("nombre1%d" , &nombre1);
int nombre2= 0;
printf("choisis ton nombre\n", nombre2);
scanf("nombre2%d", nombre2);
int resultat = nombre1 + nombre2;
printf(" %d + %d = %d\n", nombre1, nombre2, resultat);
getchar();
return 0;}
A voir également:
- Debutant en C
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Platine dj debutant - Forum Enregistrement / Traitement audio
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions
8 réponses
Salut,
printf("choisis ton nombre\n", nombre1);
Si tu veux afficher nombre1, tu ne dois pas oublier de mettre dans le premier argument ( %d ). Mais ici, en suivant la logique de ton programme, tu n'as pas besoin de l'afficher, donc je te recommanderai d'effacer purement et simplement nombre1.
scanf("nombre1%d" , &nombre1);
Mauvaise utilisation de scanf. Correction : scanf("%d",&nombre1);
int nombre2= 0;
Ce que tu fais est valable avec la norme C99 (et non en ANSI). Mais, ce n'est pas très propre. Généralement, on déclare les variable en tout premier dans un scope. En gros, groupe tes déclarations de variables d'une part et tes instructions d'autre part.
printf("choisis ton nombre\n", nombre2);
scanf("nombre2%d", nombre2);
Même constat que les deux premières remarques.
int resultat = nombre1 + nombre2;
Utilise plutôt : resultat=nombre1+nombre2; et déclare int resultat avec tes autres variables.
getchar();
Ce getchar() va récupérer le '\n' que tu as utilisé lorsque tu as validé l'entrée de ta variable (touche entrée).
Ainsi le programme prendra fin juste après. Donc remets deux getchar() (un pour enlever du buffer clavier le '\n' du scanf("%d",&..) et le second pour attendre avant de provoquer la fin du programme.
Cdlt
printf("choisis ton nombre\n", nombre1);
Si tu veux afficher nombre1, tu ne dois pas oublier de mettre dans le premier argument ( %d ). Mais ici, en suivant la logique de ton programme, tu n'as pas besoin de l'afficher, donc je te recommanderai d'effacer purement et simplement nombre1.
scanf("nombre1%d" , &nombre1);
Mauvaise utilisation de scanf. Correction : scanf("%d",&nombre1);
int nombre2= 0;
Ce que tu fais est valable avec la norme C99 (et non en ANSI). Mais, ce n'est pas très propre. Généralement, on déclare les variable en tout premier dans un scope. En gros, groupe tes déclarations de variables d'une part et tes instructions d'autre part.
printf("choisis ton nombre\n", nombre2);
scanf("nombre2%d", nombre2);
Même constat que les deux premières remarques.
int resultat = nombre1 + nombre2;
Utilise plutôt : resultat=nombre1+nombre2; et déclare int resultat avec tes autres variables.
getchar();
Ce getchar() va récupérer le '\n' que tu as utilisé lorsque tu as validé l'entrée de ta variable (touche entrée).
Ainsi le programme prendra fin juste après. Donc remets deux getchar() (un pour enlever du buffer clavier le '\n' du scanf("%d",&..) et le second pour attendre avant de provoquer la fin du programme.
Cdlt
Salut,
je pense que le prb viens plus de la syntaxe:
printf("choisis ton nombre\n", nombre1); //pourquoi mettre nombre1 comme argument du printf?
scanf("nombre1%d" , &nombre1); //pourquoi mettre: nombre1%d
scanf("nombre2%d", nombre2); //il faut preciser l' adresse d'une variable
tu peux essayer cela....
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int nombre1= 0;
printf("choisis ton nombre\n");
scanf("%d" , &nombre1);
int nombre2= 0;
printf("choisis ton nombre\n");
scanf("%d",&nombre2);
printf(" %d + %d = %d\n", nombre1, nombre2, nombre1 + nombre2);
getchar();
return 0;
}
@+
je pense que le prb viens plus de la syntaxe:
printf("choisis ton nombre\n", nombre1); //pourquoi mettre nombre1 comme argument du printf?
scanf("nombre1%d" , &nombre1); //pourquoi mettre: nombre1%d
scanf("nombre2%d", nombre2); //il faut preciser l' adresse d'une variable
tu peux essayer cela....
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int nombre1= 0;
printf("choisis ton nombre\n");
scanf("%d" , &nombre1);
int nombre2= 0;
printf("choisis ton nombre\n");
scanf("%d",&nombre2);
printf(" %d + %d = %d\n", nombre1, nombre2, nombre1 + nombre2);
getchar();
return 0;
}
@+
Salut,
Voici un programme fonctionnel dont la fenêtre ne se fermera pas à la fin.
Par contre, je n'ai pas mis la gestion d'erreur, du genre si l'utilisateur rentre un nombre trop grand ou rentre des lettres.
Voici un programme fonctionnel dont la fenêtre ne se fermera pas à la fin.
Par contre, je n'ai pas mis la gestion d'erreur, du genre si l'utilisateur rentre un nombre trop grand ou rentre des lettres.
#include <stdio.h> int main(void){ int nombre1,nombre2; printf("choisis ton nombre\n"); scanf("%d" ,&nombre1); printf("choisis ton nombre\n"); scanf("%d",&nombre2); getchar(); printf("%d + %d = %d\n",nombre1,nombre2,nombre1+nombre2); getchar(); return 0; }
efface "getchar ()" mais appart sa je vois que l'on est au meme niveau sur le site du zéro comme par hasrad on est tous les 2 au mem chapitre sauf que moi je l'ai réussi^^ moi j'utilise Dev C++ car il est plus souvent mis a jour .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci a tous pour vos explications cela me permet de progresser.Encore mille mercis ( surtout a fiddy pour ces explications claires et précises) @+ keep it touch.
Merci a tous pour vos explications cela me permet de progresser.Encore mille mercis ( surtout a fiddy pour ces explications claires et précises) @+ keep it touch.
Bonjour,
J'ai suivi vos conseils cependant pendant l'execution du programme, il me marque:"Exception non gérée à 0x60996af2 dans calcul.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00000000."Et ensuite le choix entre arreter ou continuer. Que dois-je faire.Merci de toutes suggestions...
J'ai suivi vos conseils cependant pendant l'execution du programme, il me marque:"Exception non gérée à 0x60996af2 dans calcul.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00000000."Et ensuite le choix entre arreter ou continuer. Que dois-je faire.Merci de toutes suggestions...
Bonjour,
Je n'ai toujours pas trouvé la cause du message ci-dessus mais le programme donné par chuko n'affiche ce message et marche parfaitement pourquoi ?Merci...
Je n'ai toujours pas trouvé la cause du message ci-dessus mais le programme donné par chuko n'affiche ce message et marche parfaitement pourquoi ?Merci...
Bonjour,
Merci a tous pour vos conseils, j'ai progressé et maintenant je test un programme dont le principe est le suivant:
.L'ordinateur tire au sort un nombre entre 1 et 100
.Il vous demande de deviner le nombre. Vous rentrez donc un nombre entre 1 et 100
.L'ordinateur compare le nombre que vous avez rentré avec le nombre "mystère" qu'il a tiré au sort. Il vous dit si .le nombre mystère est supérieur ou inférieur à celui que vous avez entré
.Puis, l'ordinateur vous redemande le nombre.
... Et il vous indique si le nombre mystère est supérieur ou inférieur.
.Et ainsi de suite, jusqu'à ce que vous ayez trouvé le nombre mystère. (source: le site du zero).
Pour l'instant j'ai debuter mon programme comme ceci:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int nombredujeu=0,nombremystere=10; //ici je declare mes variables
printf("choisis ton nombre\n"); //on demande au joueur de choisir son nombre
scanf("%d\n");//il le choisis
if(nombredujeu<10) //et ici je demande de tester 'si le nombre choisis est< au nombre mystere alors il affiche desole ect...
{
printf("desole c'est plus\n");
}
return 0;
getchar();
}
Pour l'instant c'est juste le test qui permet de dire: voila si c'est plus petit alors ect...
Leproblème est que après avoir compiler avec succes le programme ne s'execute pas comme je le voudrais et affiche le message suivant: Exception non gérée à 0x5fd96af2 dans TP.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00000000.
J'ai donc 2 questions a vous demander: 1) Que veux dire c emessage
2) Ou est le probleme dans mon programme ?
merci a tous pour votre aide vous etes geniaux!
Merci a tous pour vos conseils, j'ai progressé et maintenant je test un programme dont le principe est le suivant:
.L'ordinateur tire au sort un nombre entre 1 et 100
.Il vous demande de deviner le nombre. Vous rentrez donc un nombre entre 1 et 100
.L'ordinateur compare le nombre que vous avez rentré avec le nombre "mystère" qu'il a tiré au sort. Il vous dit si .le nombre mystère est supérieur ou inférieur à celui que vous avez entré
.Puis, l'ordinateur vous redemande le nombre.
... Et il vous indique si le nombre mystère est supérieur ou inférieur.
.Et ainsi de suite, jusqu'à ce que vous ayez trouvé le nombre mystère. (source: le site du zero).
Pour l'instant j'ai debuter mon programme comme ceci:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int nombredujeu=0,nombremystere=10; //ici je declare mes variables
printf("choisis ton nombre\n"); //on demande au joueur de choisir son nombre
scanf("%d\n");//il le choisis
if(nombredujeu<10) //et ici je demande de tester 'si le nombre choisis est< au nombre mystere alors il affiche desole ect...
{
printf("desole c'est plus\n");
}
return 0;
getchar();
}
Pour l'instant c'est juste le test qui permet de dire: voila si c'est plus petit alors ect...
Leproblème est que après avoir compiler avec succes le programme ne s'execute pas comme je le voudrais et affiche le message suivant: Exception non gérée à 0x5fd96af2 dans TP.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00000000.
J'ai donc 2 questions a vous demander: 1) Que veux dire c emessage
2) Ou est le probleme dans mon programme ?
merci a tous pour votre aide vous etes geniaux!