Besoin d'aide pour mon petit prog

Signaler
Messages postés
1
Date d'inscription
dimanche 31 janvier 2010
Statut
Membre
Dernière intervention
3 février 2010
-
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
-
bjr j'ai besoin d'une aide pour ce prog;
le but est de faire la somme des elements du tableau t à 2 dimenssions
en utilisant le formalisme pointeur;
quand je compile ce prog les erreurs suivants s'affichent:

warning: assignment from incompatible pointer type
som_t2dim.
warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’

#include<stdio.h>
#include<stdlib.h>

int t[3][4];
int i,j;
int som, *s;

int som_t2dim(int *s);

int main ()
{
s=t;
for (i=0;i<3;i++)
for(j=0;j<4;j++)
{
printf("entrer vos nombres\n");
scanf("%d",*(s+i));
}
som += *(s+i);
printf("la somme des elements du tableau est:%d \n", som);

return 0;

}

merci

1 réponse

Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
1
Salut,
En plus des erreurs du programme, celui-ci n'a aucun intérêt... Tu boucles pour demander de rentrer un nombre. Et à la fin, tu ajoutes à 'som' (qui a déjà une valeur inonnue, puisque non-initialisée) un pointeur sur une case mémoire inconnue... Et à quoi sert ton tableau dans l'histoire ? De plus, tu déclares une fonction non-utilisée, des variables globales, etc... c'est franchement moche.

Commences par faire une boucle pour stocker les valeurs saisies par l'utilisateur dans le tableau. Tout ça dans le main
int som_t2dim(int **s);
int main() {
    int i,j,t[3][4];
    for (i=0;i < 3;i++) {
        for(j=0;j < 4;j++) {
            puts("Saisir un nombres");
            scanf("%d",&(t[i][j]));
        }
    }
    printf("La somme des elements du tableau est: %d \n",som_t2dim((int**)t));
}


Ensuite, tu fais une 2ème boucle, dans ta fonction à part, pour faire ta somme.
int som_t2dim(int **s) {
    int i,j,som=0;
    for (i=0;i < 3;i++) {
        for(j=0;j < 4;j++) {
            som+=s[i][j];
        }
    }
    return som;
}

Je ne sais pas si ça fonctionne. Mais essaye tout de même de comprendre.

Cordialement, uaip.