Programme C et Tableau -- HELPP svp!
Résolu
Bonjour,
Voila, jai un exam lundi prochain et j essai de resoudre ce petit probleme mais je bloque!
-le truc, c'est faire un tableau avec en 1er ligne "les année" {1951; 1952; 1953; ...jusqu'a; 1960}
on demande alors a l utilisateur de rentrer des valeurs de temperature pour chaque année pour enfin afficher la moyenne de temperature sur cette periode (de 1951 a 1960).
et ici, ce que jai commecé, mais cela ne marche pas!!
Merci a tous!
jai vraiment besoin de vous..
Voila, jai un exam lundi prochain et j essai de resoudre ce petit probleme mais je bloque!
-le truc, c'est faire un tableau avec en 1er ligne "les année" {1951; 1952; 1953; ...jusqu'a; 1960}
on demande alors a l utilisateur de rentrer des valeurs de temperature pour chaque année pour enfin afficher la moyenne de temperature sur cette periode (de 1951 a 1960).
et ici, ce que jai commecé, mais cela ne marche pas!!
#include <stdio.h>
int main()
{
int i; //pour les annee
float s; //la somme de temperature
float T[10]; //le tableau
for (i = 1951; i < 1961; i++)
{
printf ("temp pour %d \n", i); // on demande ici a lutilsateur de rentrer la temperature
scanf("%f", &T[i]); //la valeur est mise dans le tableau
}
s=s+T[i]; //la somme de toutes les temperatures pour le calcul de la moyenne
printf ("moyene \n", s/10);
return 0;
}
Merci a tous!
jai vraiment besoin de vous..
Configuration: Windows XP Internet Explorer 7.0
8 réponses
-
mets la somme s=s+T[i] dans la boucle for !!!
et il faut initialiser s=0; au début-
ok, jai fais les modif mais la jai un bug
je rentre bien la temperature pour la 1er année mais ensuite jai "
"temp.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."
normal cette histoire??? et cela vien de chez moi??
#include <stdio.h> int main() { int i; //pour les annees float s=0; //la somme de temperature float T[10]; //le tableau for (i = 1951; i < 1961; i++) { printf ("temp pour %d \n", i); // on demande ici a lutilsateur de rentrer la temperature scanf("%f", &T[i]); //la valeur est mise dans le tableau s=s+T[i]; //la somme de toute les temperatures pour le calcul de la moyenne } printf ("moyene \n", s/10); return 0; }
-
-
le code devrait ressembler à ça :
#include <stdio.h>
void main()
{
int i; //pour les annee
float s=0, moy=0; //la somme de temperature
float T[10]; //le tableau
for (i = 0; i < 10; i++)
{
printf ("temp pour %d \n", i); // on demande ici a lutilsateur de rentrer la temperature
scanf("%f", &T[i]); //la valeur est mise dans le tableau
s=s+T[i]; //la somme de toutes les temperatures pour le calcul de la moyenne
}
moy=s/10;
printf ("moyene %f \n", moy);
}
-
salut,
scanf("%f", &T[i]); //la valeur est mise dans le tableau !!! mais t'as mis la valeur dans T[1956] ki n'est pas défini
je vous conseil d'utiliser unetableau à 2 dimension 2x10 dans la première ligne tu stocke les années ds la 2ème les temperature !
si c n'est pas essentiel de mémoriser les température essaye c programme:
#include <stdio.h>
int main()
{
int i;
float s=0,n;
int T[10];
for (i = 1951; i < =1960; i++)
{
printf ("temp pour %d \n", i); // on demande ici a lutilsateur de rentrer la temperature
scanf("%f",n)
s=s+n; //la somme de toutes les temperatures pour le calcul de la moyenne
}
printf ("moyene =", s/10);
return 0;
}
j'ai pris votre programme et je fais qque modifications! -
votre tableau est définie jusqu'au 10 et tu demande au programme de stocker une valeur dans T[1956] c normal ke tu vas rencontrer un problème!
-
-
@<yassou>non, il faut absolument utiliser un tableau.. l exam portera sur les tableaux..
-
-
fais copier/coller mon code pour voir !
parce que j'ai utilisé une autre variable "moy" et dans printf j'ai mit "%f", j'ai un peu oublié le c mais normalement ça devrait marcher
tiens nous au courant
à+-
OUIiiiiiiiii, c'est vrai j'avais oublié le %f du printf
mais toujour ce méme bug
et si on crée au debut un tableau
float T[1961] ???
donc jen suis ici maintenant
#include <stdio.h> int main() { int i; //pour les annee float s=0, moy=0; //la somme de temperature float T[10]; //le tableau for (i = 1951; i < 1961; i++) { printf ("temp pour %d \n", i); // on demande ici a lutilsateur de rentrer la temperature scanf("%f", &T[i]); //la valeur est mise dans le tableau s=s+T[i]; //la somme de toutes les temperatures pour le calcul de la moyenne } moy=s/10; printf ("moyene %f \n", moy); } -
@ram damVoila ca marche!!!
c'etait bien un probleme de tableau trop petit!
et jai donc ici un float T[1961];#include <stdio.h> int main() { int i; float s=0, moy=0; float T[1961]; for (i = 1951; i < 1961; i++) { printf ("temp pour %d \n", i); scanf("%f", &T[i]); s=s+T[i]; } moy=s/10; printf ("moyene %f \n", moy); }
-
-
il reste plus qu'a rectifier ta boucle :
for (i=0; i<10; i++)
ça n'a pas de sens de créer un tableau de 1962 cases pour n'utiliser que 10 !!!!!
gaspillage d'espace mémoire inutile, et à l'exam je ne sais pas ce que ça donnera comme remarque ou note !!!! -
ça marche mais ça n'a aucun sens
tu alloues trop d'espace inutilement donc c'est faux, à l'exam ça jouera contre toi
=> donc , rectifie ta boucle stp !-
-
@ram damtrès bien
et bon courage pour tes exam ;) -
@<yassou>mais dit moi yassou, pour la boucle;
que ce soit avec for (i=1; i<11; i++) ou for (i=0; i<10; i++)
ca revient bien au méme?? no? -
@ram damje me souviens plus très bien, mais je crois que le c permet de commencer les tableaux à partir de 0 ou de 1
alors qu'en c++, on ne commence qu'avec l'indice 0
donc normalement c'est la même chose, mais il faut vérifier au cas où je me trompe -
Contributeur@<yassou>Non, le C comme le C++ commence leur tableau à 0.
Donc, il faut utiliser : for(int i=0;i<10;i++)
Cdlt
-
-
ContributeurOui, en effet un si grand tableau pour n'utiliser que très peu de case représente pas beaucoup d'intérêt.
Tu peux jouer avec l'addition pour faire du décalage d'indice. Par exemple :#include <stdio.h> int main(void) { int i; float s=0, moy=0; float T[10]; for (i = 1951; i < 1961; i++) { printf ("temp pour %d \n", i); scanf("%f", &T[i-1951]); s=s+T[i-1951]; } moy=s/10; printf ("moyene %f \n", moy); return 0; }
Et n'oublie pas le return final ;)
Cdlt