Suite d'entier terminée par zéro

Fermé
sweetwink - 9 nov. 2008 à 11:11
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 9 nov. 2008 à 21:38
Bonjour,
je veux que vous m'aider à résoudre ca en c:
un programme qui permet de calculer la somme le produit et la moyenne d'une suite des entiers non nuls au clavier sachant que la suite est términée par zéro,,
stp j'en ai besoin
merci

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
9 nov. 2008 à 21:07
Re,
Toi je parie que tu viens du pascal lol. Non ?
repeat en C n'existe pas, on utilise do while.
Dans les scanf, on doit donner l'adresse de la zone mémoire. Pour cela, on utilise l'esperluette (&).
Pour saisir un élément dans le tableau avec scanf, on met &t[i] (ou alors t+i). Note : pas d'esperluette dans ce cas.

J'ai utilisé malloc pour de l'allocation dynamique (bien que cela ne soit pas obligé, mais bon).
malloc t'alloue une zone de n entiers avec n défini par l'utilisateur à l'exécution.

Et enfin, t'étais pas obligé d'utiliser un tableau pour calculer la moyenne. Mais bon, je te l'ai laissé, ça te permet de comprendre son utilisation.

Voilà, si tu as d'autres questions, n'hésite pas.
#include <stdio.h>
#include <stdlib.h>

int main(void){
    int n,i,som;
    int *t;
    float moy;



    do{
        printf("saisir le nombre element de t : ");
        scanf("%d",&n);
    }while (n<=1 || n>100);
    t=malloc(n*sizeof(*t));
    if(t==NULL) exit(-1);

    som=0;
    for (i=0; i < n-1; i++){
        printf("saisir l'element t[%d] : ",i);
        scanf("%d",t+i);
        som+=t[i];
    }
    t[n-1]=0; //le dernier entier est nul
    som+=t[n-1]; //pour ne pas l'oublier si tu changes t[n-1]
    free(t);
    t=NULL;
    moy=(float)som/n;

    printf("moyenne : %f\n",moy);
    return 0;
} 

1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
9 nov. 2008 à 11:23
Salut,
Poste le code que tu as fait jusqu'à maintenant, ou à défaut l'algorithme. Comme ça, on pourra t'aider et dire ce qui ne va pas.
Si t'y arrives pas, n'hésite pas à poser des questions.
0
sweetwink Messages postés 77 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 13 janvier 2009 6
9 nov. 2008 à 20:47
# include <stdio.h>

void main
{
int n,i,som;
int t[];
float moy;



repeat
printf("saisir le nombre element de t",n);
scanf("%i",n);
until (n>1&&n<=100);
for (i=0;i<=100;i++)
{
printf("saisir le element",i);
scanf("%i\t",t[i]);
}
p=0//*le dernier entier est nul*//

som=n/2*(t[0]+t[n-1]);


moy=som/(n-1);
}
c'est comme ca que jé fé ........mé ca marche pake doi je fére
0
sweetwink Messages postés 77 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 13 janvier 2009 6
9 nov. 2008 à 21:15
meeeerciiiiiiiiiiiiiiiiiiiiiiiii oui je v1 du pascal en fin jéspére que je dev1 assé rapide comme toi a propos je vien d'envoyer 1 autre message d'un autre exercice et je fais au méme temp 1 autre que si tu peux le voir quand je términe, je serai ravie
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
9 nov. 2008 à 21:38
Poste toujours ton exercice, avec ce que tu as fait. On verra après ;).
0