Probleme sur instruction en C
flight7218
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
flight7218 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
flight7218 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
bonsoir,
j'ai un petit souci au niveau d'un resultat de calcul d'une moyenne d'une serie de nombres par le programme suivant ;
int N=0;
int tab[N];
int i=0;
int tot=0;
printf("donner le nombre de notes prendre en compte :");
scanf("%ld",&N);
for(i=0;i<=N;i++)
{
printf(" donnez la valeur de la note %ld:",i);
scanf("%ld",&tab[i]);
tot=tot+tab[i];
}
printf("Somme des elements du tableau est : %ld\n",tot);
printf("la moyenne des elements: %ld",tot/N);
le probleme se situe à la dernière instruction ou le resulat renvoyé est un nombre entier , comment serait il possible de faire pour renvoyer un nombre decimal en resultat pour la moyenne sachant que je dois diviser un nombre entier par un nombre entier et que le resultat ne doit pas toujours etre rond?
Merci à vous
j'ai un petit souci au niveau d'un resultat de calcul d'une moyenne d'une serie de nombres par le programme suivant ;
int N=0;
int tab[N];
int i=0;
int tot=0;
printf("donner le nombre de notes prendre en compte :");
scanf("%ld",&N);
for(i=0;i<=N;i++)
{
printf(" donnez la valeur de la note %ld:",i);
scanf("%ld",&tab[i]);
tot=tot+tab[i];
}
printf("Somme des elements du tableau est : %ld\n",tot);
printf("la moyenne des elements: %ld",tot/N);
le probleme se situe à la dernière instruction ou le resulat renvoyé est un nombre entier , comment serait il possible de faire pour renvoyer un nombre decimal en resultat pour la moyenne sachant que je dois diviser un nombre entier par un nombre entier et que le resultat ne doit pas toujours etre rond?
Merci à vous
A voir également:
- Probleme sur instruction en C
- Ajoutez une instruction pour faire afficher le mot secret construit. ✓ - Forum Python
- The instruction data for this shipment have been provided by the sender to dhl electronically ✓ - Forum Consommation & Internet
- Afficher un message sur python "" ✓ - Forum Python
- Programme python ✓ - Forum Python
- L'instruction à 0x00007ff - Forum Virus
3 réponses
C'est normal. Tu fais un tableau de 0 colonne.
Version corrigée :
#define MAX 128
int N;
int tab[MAX];
int i;
int tot=0;
printf("donner le nombre de notes prendre en compte :");
scanf("%ld",&N);
for(i=0;i<=N;i++)
{
printf(" donnez la valeur de la note %d:",i);
scanf("%d",&tab[i]);
tot+=tab[i];
}
printf("Somme des elements du tableau est : %d\n",tot);
printf("la moyenne des elements: %d",tot/N);
Version corrigée :
#define MAX 128
int N;
int tab[MAX];
int i;
int tot=0;
printf("donner le nombre de notes prendre en compte :");
scanf("%ld",&N);
for(i=0;i<=N;i++)
{
printf(" donnez la valeur de la note %d:",i);
scanf("%d",&tab[i]);
tot+=tab[i];
}
printf("Somme des elements du tableau est : %d\n",tot);
printf("la moyenne des elements: %d",tot/N);
D'apres moi, qui ne suis pas un pro (loin de là vu toute l'aide que je demande sur ce forum ...), il s'agit de ton tableau qui merde.
Tu réserve un espace mémoire de 0 éléments pour ton tableau ...
or par la suite, tu rempli les éléments de ton tableau (que tu n'as pas alloué en mémoire!).
Il te faut faire un tableau dynamique ou bien tricher un peu en déclarant ton tableau apres le scanf qui te donne le nombre de notes de ton tableau (= nbr de cellule de tab).
En espérant t'avoir aider.
Tu réserve un espace mémoire de 0 éléments pour ton tableau ...
or par la suite, tu rempli les éléments de ton tableau (que tu n'as pas alloué en mémoire!).
Il te faut faire un tableau dynamique ou bien tricher un peu en déclarant ton tableau apres le scanf qui te donne le nombre de notes de ton tableau (= nbr de cellule de tab).
En espérant t'avoir aider.
je me retrouve par exemple avec une solution entière pour le calcul de la moyenne lorsque N=3
et que par exemple je choisi tab[0]=1, tab[1]=2,tab[2]=3 et tab[3]=5 en effet le programme me donne bien la somme et tot=11
par contre il me retourne pour moyenne : 9 , et le resultat devrait etre un nombre decimal .
merci encor