Pobleme en language c

mekaelle Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
mekaelle Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis debutante en langauge c j'ai compiler le programme suivant qui calcule la somme des elements d'un tableau mé je sais pas pour quoi ça m'affiche pas la somme !!! :(
y a t-il kelkin ki peut m'aider ????
merci d'avance
#include <stdio.h>
main()
{

int T[50];
int n, i ;
long som;
printf("Dimension du tableau (max.50) : ");
scanf("%d", &n );
/*remlissage du tableau*/
for (i=0; i<n; i++)
{
printf("Elément %d : ", i);
scanf("%d", &T[i]);
}
/* Affichage du tableau */
printf("Tableau donné :\n");
for (i=0; i<n; i++)
printf("%d ", T[i]);
printf("\n");
/* Calcul de la somme */
for ( i=0; i<n; i++)
som += T[i];
/* affichage du résultat */
printf("Somme de éléments : %ld\n", som);
return 0;}

23 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Ton programme est presque parfait.
Je t'apporte les corrections :
#include <stdio.h>
#include <stdlib.h> /*modification pour la fonction system()*/

int main(void) { /*modification*/
    int T[50];
    int n, i;
    long som;
    printf("Dimension du tableau (max.50) : ");
    scanf("%d",&n);

    /*remlissage du tableau*/
    for (i=0; i<n; i++) {
        printf("Elément %d : ", i);
        scanf("%d", &T[i]);
    }

    /* Affichage du tableau */
    printf("Tableau donné :\n");
    for (i=0; i<n; i++)
        printf("%d ", T[i]);
    printf("\n");

    /* Calcul de la somme */
    som=0; /*modification*/
    for ( i=0; i<n; i++)
        som += T[i];

    /* affichage du résultat */
    printf("Somme de éléments : %ld\n", som);

     system("pause");/*modification*/
    return 0;
}

En fait tu avais oublié d'initialiser la variable som à 0. De plus comme tu es sur windows et que tu lances le programme en double cliquant (j'imagine) ton programme se referme très vite et tu ne vois pas l'affichage. J'ai donc mis une pause en fin de programme. Par contre, ce n'est plus entièrement portable pour cette dernière ligne (le mieux serait de mettre un double getchar() (le premier pour enlever le '\n' du buffer clavier).

Cdlt,
0
mekaelle Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
meciiii fiddy mé le probleme dont tu parle ne m a pas rencontrer avec le programme de somme plutt avec ce programme si dessous la fenetre se ferme dés ke j'entre le dernier element du tableau malgrai ke g pas oublié de mettre systeme("pause")
#include <stdio.h>
#include <stdlib.h>

main()
{
/* Déclarations */
int T[50]; /* tableau donné */
int N; /* dimension */
int I,J; /* indices courants */

/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Elément %d : ", I);
scanf("%d", &T[I]);
}
/* Affichage du tableau */
printf("Tableau donné : \n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
/* Effacer les zéros et comprimer : */
/* Copier tous les éléments de I vers J et */
/* augmenter J pour les éléments non nuls. */
for (I=0, J=0 ; I<N ; I++)
{
T[J] = T[I];
if (T[I]) J++;
}
/* Nouvelle dimension du tableau ! */
N = J;
/* Edition des résultats */
printf("Tableau résultat :\n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
return 0;
system("pause");
}
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Normal puisque tu mets le system("pause") après le return 0... Regarde bien mon programme. De plus tu n'as pas corrigé le prototype du main qui est : int main(void) et non main() tout court.
0
mekaelle Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Wé c vrai ; ) g lé renversé et ça marche bien merci
0