Langage C
Fermé
spirit44
Messages postés
5
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
3 février 2008
-
3 févr. 2008 à 15:05
testy Messages postés 75 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 17 février 2008 - 4 févr. 2008 à 23:18
testy Messages postés 75 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 17 février 2008 - 4 févr. 2008 à 23:18
A voir également:
- Langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
8 réponses
testy
Messages postés
75
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
17 février 2008
6
4 févr. 2008 à 22:18
4 févr. 2008 à 22:18
Aller, j'avais rien de mieux a faire... et pourtant j'ai jamais fait de C..
C'est compliqué cette histoire de type de données (double, int et tout)
Par contre j'aurais aimé faire le calcul de la moyenne dans la boucle mais j'ai pas eu d'idée (a cause du compteur qui s'incrémente quoi qu'il advienne qu'on le place en début ou en fin de boucle...)
Je sais pas a uoi sert le "return 0" a la fin non plus..
int main(void)
{
int N,LeMax, Somme = 0;
double Moyenne = 0 ;
int cpt = 0 ;
do
{
printf("Allez vas y gars rentre zy ton nombre pedro\n");
scanf("%d",&N);
Somme = Somme + N ;
if (N > LeMax)
LeMax = N ;
cpt++;
}
while (N!=0);
Moyenne = (double)Somme / ((double)cpt-1) ;
printf("La somme totale est : %d \n",Somme);
printf("La moyenne est : %f \n",Moyenne);
printf("La nombre le plus grand est : %d \n",LeMax);
return 0;
}
C'est compliqué cette histoire de type de données (double, int et tout)
Par contre j'aurais aimé faire le calcul de la moyenne dans la boucle mais j'ai pas eu d'idée (a cause du compteur qui s'incrémente quoi qu'il advienne qu'on le place en début ou en fin de boucle...)
Je sais pas a uoi sert le "return 0" a la fin non plus..
int main(void)
{
int N,LeMax, Somme = 0;
double Moyenne = 0 ;
int cpt = 0 ;
do
{
printf("Allez vas y gars rentre zy ton nombre pedro\n");
scanf("%d",&N);
Somme = Somme + N ;
if (N > LeMax)
LeMax = N ;
cpt++;
}
while (N!=0);
Moyenne = (double)Somme / ((double)cpt-1) ;
printf("La somme totale est : %d \n",Somme);
printf("La moyenne est : %f \n",Moyenne);
printf("La nombre le plus grand est : %d \n",LeMax);
return 0;
}
testy
Messages postés
75
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
17 février 2008
6
3 févr. 2008 à 15:08
3 févr. 2008 à 15:08
donne nous une ebauche et on la corrigeras.
histoire de savoir ou tu en es. tu crois pas qu'on va faire tes exercices a ta place non plus :P
histoire de savoir ou tu en es. tu crois pas qu'on va faire tes exercices a ta place non plus :P
ghiz
Messages postés
39
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
16 août 2008
18
4 févr. 2008 à 18:40
4 févr. 2008 à 18:40
il faut faire une boucle dans laquelle tu saisis un nombre, tu le rajoute à la somme qui doit être initialisée au début par zéro. la boucle doit se terminer une fois on saisit le zéro. et après tu calcule la moyenne en divisant la somme sur le nombre des nombres saisis.
Bonne chance!
Bonne chance!
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
4 févr. 2008 à 18:45
4 févr. 2008 à 18:45
salut,
fais voir ton programme pour qu'on puisse te corrifer.
te donner la réponse n'est pas pédagogique
fais voir ton programme pour qu'on puisse te corrifer.
te donner la réponse n'est pas pédagogique
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut je te proposerai un algorithme et à toi de le traduir en langage C, il faut fair un effort!
DEBUT
%declaration des variables%
%a toi de le faire%
%initialisation%
s=0
i=0
g=0
%boucle principale du programme%
TANTQUE(x<>0)
lire(x)
s=s+x
si (x>g)
g=x
finsi
i=i+1
finTANTQUE
%condition pour eviter les anomalies%
si(i<>0)
M=S/i
finsi
%affichage%
Ecrire("la somme est:",s)
Ecrire("la moyenne est:", m)
Ecrire("le plus grand nombre saisi est:",g)
fin
NB: normalement c bon, en tout cas je ne suis pas un informatition, mon domaine c'est l'éléctronique donc il se peut qu'il existe des ptites fautes!
DEBUT
%declaration des variables%
%a toi de le faire%
%initialisation%
s=0
i=0
g=0
%boucle principale du programme%
TANTQUE(x<>0)
lire(x)
s=s+x
si (x>g)
g=x
finsi
i=i+1
finTANTQUE
%condition pour eviter les anomalies%
si(i<>0)
M=S/i
finsi
%affichage%
Ecrire("la somme est:",s)
Ecrire("la moyenne est:", m)
Ecrire("le plus grand nombre saisi est:",g)
fin
NB: normalement c bon, en tout cas je ne suis pas un informatition, mon domaine c'est l'éléctronique donc il se peut qu'il existe des ptites fautes!
ghiz
Messages postés
39
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
16 août 2008
18
4 févr. 2008 à 22:44
4 févr. 2008 à 22:44
le cpt++ soit on le place au début ou à la fin de la boucle, ça donnera la même chose pcq l'essentiel est qu'il s'incrémente à chaque foit qu'on saisit un nombre.
le return 0 est présent pcq le main que tu définis commence par int main() le int placé avant main() indique que la fonction main() doit retourner qlq chose de type int pas forcément 0 n'importe quoi de type int. sinon, tu peut la déclarer void main() au lieu de int main() et dans ce cas tu n'as pas besoin de mettre return 0.
pour les types de données c surtout pour la la mémoire occupée par les variables : un entier (int) ne prend pas autant de place qu'un réel (double).
j'espère que c un peu plus claire pour toi.
le return 0 est présent pcq le main que tu définis commence par int main() le int placé avant main() indique que la fonction main() doit retourner qlq chose de type int pas forcément 0 n'importe quoi de type int. sinon, tu peut la déclarer void main() au lieu de int main() et dans ce cas tu n'as pas besoin de mettre return 0.
pour les types de données c surtout pour la la mémoire occupée par les variables : un entier (int) ne prend pas autant de place qu'un réel (double).
j'espère que c un peu plus claire pour toi.
j'ai utilisai la structure conditionelle SI pour éviter la forme indéterminé 0/0 dans la somme si on saisie directement zéro donc on rentra jamais dans la boucle tantque donc on utilisera la condition initiale où tous les termes sont nuls, l'incrimentation se fait n'importe où tant qu'elle reste dans la boucle puisque sa utilisation ne sera pas dedans, mais si on utilisera i dans la boucle l'incrimentation sera en fonction du valeur initial, si la condition initial i=0, l'incrimentation sera au début i++, si la condition initial i=1, l'incrimentation sera enfin!
t'as utilisé main( ) donc il faut metre return 0, mais si tu met voidmain() sa sera pas necessaire de mettre return0.
pour simplifier une programmation, on peut décomposer un programme en sous programme on les appelles fonction et procédure donc quand tu les étudieras tu va comprendre pour quoi on met returne0, c'est une differnce entre porocédure et fonction...
t'as utilisé main( ) donc il faut metre return 0, mais si tu met voidmain() sa sera pas necessaire de mettre return0.
pour simplifier une programmation, on peut décomposer un programme en sous programme on les appelles fonction et procédure donc quand tu les étudieras tu va comprendre pour quoi on met returne0, c'est une differnce entre porocédure et fonction...
testy
Messages postés
75
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
17 février 2008
6
4 févr. 2008 à 23:18
4 févr. 2008 à 23:18
ok
main() = fonction
void main() = procédure
merci les gars pour vos réponses
main() = fonction
void main() = procédure
merci les gars pour vos réponses