Probleme code C

Fermé
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 - 11 oct. 2009 à 20:15
Dora The Explorer Messages postés 2811 Date d'inscription mardi 4 septembre 2007 Statut Contributeur Dernière intervention 1 septembre 2011 - 12 oct. 2009 à 18:37
Bonjour, voici mon code et il y a un problème avec code blocks aidez-moi svp !

#include <stdio.h>
#include <stdlib.h>

int main()
{
int nombre, nombreb, resultat = 0 ;
resultat = nombre + nombreb;
printf("entrez un nombre au hasard\n");
scanf ("%d", &nombre);
printf ("entrez un autre nombre au hasard\n");
scanf ("%d", &nombreb);
printf ("la somme de %d + %d est %d\n", nombre + nombreb = resultat);
return 0;
}
A voir également:

11 réponses

Utilisateur anonyme
11 oct. 2009 à 20:18
Salut

Ton dernier printf ne respecte pas le format.

Il s'écrirait :
printf ("la somme de %d + %d est %d\n", nombre, nombreb, resultat);

Et l'affectation du résultat avant de faire les scanf c'est inutile, ce sera toujours 0
1
xababafr Messages postés 121 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 2 novembre 2010 1
11 oct. 2009 à 20:20
En effet.
Tu apprend grâce au tutoriel du site du zéro non?
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
11 oct. 2009 à 20:20
oui aide moi maintenant je te pris mercii beaucou
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
11 oct. 2009 à 20:40
#include <stdio.h>
#include <stdlib.h>

int main()
{
int nombre, nombreb, resultat = 0 ;
printf("entrez un nombre au hasard\n" ,nombre);
scanf ("%d", &nombre);
printf ("entrez un autre nombre au hasard\n",nombreb);
scanf ("%d", &nombreb);
printf ("la somme de %d + %d est %d\n", nombre + nombreb, resultat);

return 0;
}



Le programme marche mais genre quand je fais 2 + 2 sa me met par exemple 255154754 un truc comme sa c'est bizarre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
asma sisi Messages postés 96 Date d'inscription vendredi 29 août 2008 Statut Membre Dernière intervention 23 mars 2011 20
11 oct. 2009 à 20:40
bonjour;
first: il ne faut jamais faire des opérations sur des variables pas encore initialisées (l'addition de nombre et nombreb est faite avant la demande de leurs valeurs ).

second:
printf ("la somme de %d  et %d est %d\n", nombre + nombreb = resultat); 

cette instruction ne convient pas aux règles de l'affichage du langage C

+ et = sont des opérations alors que là on ne fait que des affichages donc les variables doivent etre séparées pas des virgules
printf ("la somme de %d + %d est %d\n", nombre  ,  nombreb , resultat); 


ou on peut faire mieux
on annule la sommation au début et on la met dans l'affichage directement
#include <stdio.h>
#include <stdlib.h>

int main()
{
int nombre, nombreb, resultat = 0 ;

printf("entrez un nombre au hasard\n");
scanf ("%d", &nombre);
printf ("entrez un autre nombre au hasard\n");
scanf ("%d", &nombreb);
printf ("la somme de %d + %d est %d\n", nombre,nombreb , resultat = nombre + nombreb);
return 0;
}


cordialement asma sisi
0
Utilisateur anonyme
11 oct. 2009 à 20:46
Le langage C est un des langages dont la maîtrise peut prendre un bon bout de temps.

Je te conseille de prendre le temps de lire les tutoriels entièrement et éviter de vouloir aller trop vite : beaucoup de gens veulent créer des programmes très rapidement et se contentent de recopier du bout de code trouvé à gauche à et à droite sans prendre la peine de comprendre réellement ce qui se passe. Si tu veux faire des programmes plus facilement, il faut plutôt commencer par des langages comme BASIC pour se faire les dents avant de passer au C.

Un bon livre sur le langage C est idéal pour apprendre.
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
11 oct. 2009 à 20:47
je l'ai refais et ca marche merci les gens =)

#include <stdio.h>
#include <stdlib.h>

int main()
{
int nombre, nombreb, resultat = 0 ;
printf("entrez un nombre au hasard\n" ,nombre);
scanf ("%d", &nombre);
printf ("entrez un autre nombre au hasard\n",nombreb);
scanf ("%d", &nombreb);
resultat = nombre + nombreb;
printf ("la somme de %d est %d = %d\n", nombre, nombreb, resultat);

return 0;
}
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
12 oct. 2009 à 12:46
Un autre problème, en fait je fais un programme très petit par exemple pour demander à l'utilisateur de rentrer 2 nombres au hasard pour calculer soit la somme des 2 nombres ou une autre opération.
Et aussi je voudrais faire une sorte de vérification du nombre tapé.

Par exemple: entrez un nombre au hasard
j'entre le nombre 2
avez vous tapé le nombre suivant ? :
entrez un autre nombre au hasard
j'entre le nombre 3
avez vous tapé le nombre suivant ? :

voici mon code mais je suis sur de rien et je pense que j'ai une partie de faux :

#include <stdio.h>
#include <stdlib.h>

int main()
{
int nombre, nombreb, resultat = 0 ;
printf("entrez un nombre au hasard\n" ,nombre);
scanf ("%d", &nombre);
printf ("avez vous entre le nombre suivant : %d ? \n Si oui, alors tapez le nombre 1 sinon tapez le nombre 0", nombre);
if (1)
{
printf ("vous avez bien entre le nombre suivant : %d \n", nombre);
}
else
{
printf ("vous n'avez pas rentre ce nombre : %d \n", nombreb);
}
printf ("entrez un autre nombre au hasard\n",nombreb);
scanf ("%d", &nombreb);
resultat = nombre + nombreb;
printf ("la somme de %d est %d = %d\n", nombre, nombreb, resultat);

return 0;
}
0
Dora The Explorer Messages postés 2811 Date d'inscription mardi 4 septembre 2007 Statut Contributeur Dernière intervention 1 septembre 2011 853
12 oct. 2009 à 16:53
Oui, y'a quelques erreurs.
Ton premier printf() par exemple. Tu l'écris avec une variable en paramètre (mais elle n'est pas affichée.
Ton deuxième printf(), tu demandes à l'utilisateur de rentrer un nombre, mais tu ne fais pas de scanf pour le stocker. Du coup la condition n'a aucun sens.

printf ("vous n'avez pas rentre ce nombre : %d \n", nombreb);

c'est vraiment nombreb que tu veux afficher?

Tu peux déjà méditer sur ça.
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
12 oct. 2009 à 17:44
je met un scanf comme ceci : scanf ("%d", &nombre); mais sa ne marche pas.
#include <stdio.h>
#include <stdlib.h>

int main()
{
int nombre, nombreb, resultat = 0 ;
printf("entrez un nombre au hasard\n" ,nombre);
scanf ("%d", &nombre);
printf ("avez vous entre le nombre suivant : %d ? \n Si oui, alors tapez le nombre 1 sinon tapez le nombre 0", nombre);
if (1)
{
printf ("vous avez bien entre le nombre suivant : %d \n", nombre);
}
scanf ("%d", &nombre);
else
{
printf ("vous n'avez pas rentre ce nombre : %d \n", nombreb);
}
printf ("entrez un autre nombre au hasard\n",nombreb);
scanf ("%d", &nombreb);
resultat = nombre + nombreb;
printf ("la somme de %d est %d = %d\n", nombre, nombreb, resultat);

return 0;
}
0
Dora The Explorer Messages postés 2811 Date d'inscription mardi 4 septembre 2007 Statut Contributeur Dernière intervention 1 septembre 2011 853
12 oct. 2009 à 18:37
printf("entrez un nombre au hasard\n" ,nombre);

pourquoi mettre la variable nombre ici puisque tu ne l'utilises pas dans le printf()?
printf("entrez un nombre au hasard\n");


printf ("avez vous entre le nombre suivant : %d ? \n Si oui, alors tapez le nombre 1 sinon tapez le nombre 0", nombre); 

Tu demandes à l'utilisateur de rentrer un nombre à ce moment du programme. Pour connaitre ce nombre, il faut le récupérer.
Il faut faire un scanf avec une nouvelle variable que tu auras au préalable déclarée avec les autres.
Ensuite tu fais une condition if (nouvelle_variable) pour savoir si oui ou non l'utilisateur à rentrer 0 ou 1.

Parce que là ta condition a un problème, elle est toujours vraie. Le nombre 0 signfie faux, le nombre 1 (et auxtres) signifient vrai. Donc if (1) est toujours vérifié.

if (1)
{
printf ("vous avez bien entre le nombre suivant : %d \n", nombre);
}
scanf ("%d", &nombre);
else
{
printf ("vous n'avez pas rentre ce nombre : %d \n", nombreb);
} 


Et le scanf() que tu viens de rajouter n'a pas d'intérêt ici.

Réfléchis un peu sur la logique de ton code, sur ce que ton code est censé faire à chaque étape. Là y'a des trucs pas logiques. Je te donnerai un exemple de code si tu n'as toujours pas compris, mais tu devrais recommencer depuis le début, et revoir le tout.
0