fairmond88
Messages postés1Date d'inscriptiondimanche 31 janvier 2010StatutMembreDernière intervention 3 février 2010
-
3 févr. 2010 à 21:54
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011
-
12 févr. 2010 à 16:12
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);
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 12 févr. 2010 à 16:12
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.