Programme C et Tableau -- HELPP svp!
Résolu/Fermé
ram dam
-
25 nov. 2008 à 17:19
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 nov. 2008 à 18:35
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 nov. 2008 à 18:35
A voir également:
- Programme C et Tableau -- HELPP svp!
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Programme demarrage windows 10 - Guide
8 réponses
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
25 nov. 2008 à 17:23
25 nov. 2008 à 17:23
mets la somme s=s+T[i] dans la boucle for !!!
et il faut initialiser s=0; au début
et il faut initialiser s=0; au début
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
25 nov. 2008 à 17:28
25 nov. 2008 à 17:28
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);
}
#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);
}
samar83
Messages postés
67
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
12 novembre 2009
2
25 nov. 2008 à 17:30
25 nov. 2008 à 17:30
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!
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!
samar83
Messages postés
67
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
12 novembre 2009
2
25 nov. 2008 à 17:35
25 nov. 2008 à 17:35
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>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
25 nov. 2008 à 17:38
25 nov. 2008 à 17:38
oui c'est vrai il a raison, tu as T[10] de 0 à 9
sinon utilise les enum et pas les tableaux pour faire de 1951 à 1960
sinon utilise les enum et pas les tableaux pour faire de 1951 à 1960
ram dam
>
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
25 nov. 2008 à 17:46
25 nov. 2008 à 17:46
non, il faut absolument utiliser un tableau.. l exam portera sur les tableaux..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
25 nov. 2008 à 17:35
25 nov. 2008 à 17:35
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
à+
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
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); }
Voila ca marche!!!
c'etait bien un probleme de tableau trop petit!
et jai donc ici un float T[1961];
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); }
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
25 nov. 2008 à 17:48
25 nov. 2008 à 17:48
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 !!!!
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 !!!!
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
25 nov. 2008 à 17:52
25 nov. 2008 à 17:52
ç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 !
tu alloues trop d'espace inutilement donc c'est faux, à l'exam ça jouera contre toi
=> donc , rectifie ta boucle stp !
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
>
ram dam
25 nov. 2008 à 18:02
25 nov. 2008 à 18:02
très bien
et bon courage pour tes exam ;)
et bon courage pour tes exam ;)
ram dam
>
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
25 nov. 2008 à 18:06
25 nov. 2008 à 18:06
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?
que ce soit avec for (i=1; i<11; i++) ou for (i=0; i<10; i++)
ca revient bien au méme?? no?
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
75
>
ram dam
25 nov. 2008 à 18:12
25 nov. 2008 à 18:12
je 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
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 840
>
<yassou>
Messages postés
589
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2015
25 nov. 2008 à 18:35
25 nov. 2008 à 18:35
Non, le C comme le C++ commence leur tableau à 0.
Donc, il faut utiliser : for(int i=0;i<10;i++)
Cdlt
Donc, il faut utiliser : for(int i=0;i<10;i++)
Cdlt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 840
25 nov. 2008 à 17:58
25 nov. 2008 à 17:58
Oui, 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 :
Et n'oublie pas le return final ;)
Cdlt
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
25 nov. 2008 à 17:32
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??