Language C svp c'est urgent

Résolu/Fermé
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 - 6 nov. 2009 à 22:35
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 - 6 nov. 2009 à 23:30
Bonjour, je voudrais savoir par exemple si j'entre ce code :
 
#include <stdio.h>
#include <stdlib.h>

int main()
{
    long nombre1, nombre2, nombre3, nombre4, nombre5 = 0;

	printf ("Entrez 5 nombres pour calculer une moyenne de ces 5 nombres \n");
	scanf ("%d"
	system("pause");
}

je voudrais entrer ces nombre d'UN seul coup en utilisant donc un scanf mais ai-je le droit de faire ça :
 scanf ("%d, %d, %d, %d, %d", &nombre1, &nombre2, &nombre3, &nombre4, &nombre5);c

Merci de vos réponses, je voudrais savoir si la syntaxe est bonne dans le scanf..

12 réponses

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
6 nov. 2009 à 22:41
Pour connaître facilement la réponse... il suffit d'essayer ;-)
Bonne continuation.
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
6 nov. 2009 à 22:47
j'ai essayé et ça marche pas regarde :
#include <stdio.h>
#include <stdlib.h>

int main()
{
    long nombre1, nombre2, nombre3, nombre4, nombre5, resultat = 0;

	printf ("Entrez 5 nombres pour calculer une moyenne de ces 5 nombres \n");
	scanf ("%d, %d, %d, %d, %d", &nombre1, &nombre2, &nombre3, &nombre4, &nombre5);
	printf ("Vous avez entre : %d, %d, %d, %d et %d \n", nombre1, nombre2, nombre3, nombre4, nombre5);
	system("pause");
}


quand j'entre un seul nombre, il m'invente les 4 autres mais c'est ma syntaxe je suis sur mais je comprend pas pourquoi.
Aidez moi et ne tournez pas autour du pot SVP !!!
0
marven23 Messages postés 71 Date d'inscription samedi 11 juillet 2009 Statut Membre Dernière intervention 20 août 2013 2
6 nov. 2009 à 22:52
salut,

essayer de faire

scanf("%d %d %d %d %d",&nombre1,&nombre2,&nombre3,&nombre4,&nombre5);

mais pendant l'execution tu dois entrer les cinq nombres séparés par des espaces

@+
0
crapoulou Messages postés 28161 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 998
6 nov. 2009 à 22:52
Salut,
Regarde le tableau :
http://picolibre.int-evry.fr/projects/cvs/coursc/Tex4Ht/Indexse22.html

Pour des long, c'est %ld non ?
0

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

Posez votre question
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
6 nov. 2009 à 22:56
merci beaucoup j'ai modifié quelques trucs mais ce programme est le même ;)
#include <stdio.h>
#include <stdlib.h>

int main()
{
    long nombre1, nombre2, resultat = 0;

	printf ("Entrez 2 nombres pour calculer leur moyenne \n");
	scanf("%d %d",&nombre1,&nombre2);
	printf ("Vous avez entre : %d et %d,\n", nombre1, nombre2);
	resultat = (nombre1+nombre2) / 2;
	printf ("La moyenne de ces 2 nombres est %d \n", resultat);
	system("pause");
}



en faite j'avais juste du mal pour la syntaxe du scanf !
merci à vous.
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
6 nov. 2009 à 22:58
Tu dois écouter les remarques du compilateur qui doit inévitablement râler. Quand il ne râlera plus, tu seras peut-être plus près du but.
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
6 nov. 2009 à 22:59
ba là il a pas l'air de raler car le programme fonctionne tu veux parler quand j'avais mis des virgules dans le SCANF mais j'ai changé et ça marche nikel ;)
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
6 nov. 2009 à 23:05
Ce n'est pas parce que le programme fonctionne, que le programme est correct et que le compilateur n'a rien dit; en l'occurence, suite à ton code, le compilateur doit manifester sa désaprobation devant le '%d' et le 'long'. S'il ne dit rien, c'est que ta compilation est mal réglée.
Et puis ce n'est pas une erreur de mettre des virgules dans le 'scanf', mais il faut ensuite les saisir.
Bonne réflexion.
0
crapoulou Messages postés 28161 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 998
6 nov. 2009 à 22:59
Parfait alors !
Mais %d pour un long ... !
Warning !
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
6 nov. 2009 à 23:07
qu-est-ce qu'il a mon long et mon %d ???????
dis moi stp
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
6 nov. 2009 à 23:20
Dans le 'scanf' tu fais correspondre un '%d' (qui est un entier court) avec un 'long' (qui est un entier long).
Il est vrai que cela ne pose pas toujours un problème car, sur certaines machines, les deux ont la même représentation (par exemple 32 bits pour les deux). Mais si on exécute sur une machine 16 bits... ce n'est plus le cas.
Bonne nuit.
0
Dora The Explorer Messages postés 2811 Date d'inscription mardi 4 septembre 2007 Statut Contributeur Dernière intervention 1 septembre 2011 853
6 nov. 2009 à 23:14
%ld est utilisé pour des variables de type long.
%d est utilisé pour des variables de type int.

E: enfin bon, faut que j'aille rafraichir ça de toute façon. A voir.

Sinon:
Si tu fais la moyenne de 3 + 2, la moyenne est toujours bien affichée? :)
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
6 nov. 2009 à 23:16
mais on m'a dit que %ld et %d c'est la même chose !! :O :'(
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
6 nov. 2009 à 23:30
oui oui elle affiche parfaitement la moyenne merci à vous tous
0