Probleme tableau 2 dimension

nass956 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
bonsoir j ai un problème avec mon code.
je dois faire un code qui me donne la valeur minimal ainsi que sa position , je dois obligatoirement utilisé une variable structuré et une fonction. lorsque je met une valeur plus grande que 10 il m affiche une fausse valeur minimale.
merci d avance

voici mon code


#include<stdio.h>
#include<stdlib.h>
#define L 3
#define C 2
struct element mini(int* tab2[L][C]);

struct element
{
int valeur;
int ligne;
int colonne;

};
int main(void)
{

int tab[L][C];
int i,j;
struct element point2;
for (i=0; i<L; i++)
{
for(j=0; j<C; j++)
{
printf("entrer nombre");
scanf("%d",&tab[i][j]);
}
}
point2=mini(tab);
printf("la valeur mini est %d \n",point2.valeur);
printf("la ligne est %d\n",point2.ligne);
printf("la colonne est %d\n",point2.colonne);
}
struct element mini(int* tab2[L][C])
{

int i, j ;
int min ;

min = tab2[0][0];
struct element point ;
for (i=0; i<L; i++)
{
for(j=0; j<C; j++)
{
if(tab2[i][j]< min)
{
min = tab2[i][j];

point.valeur= min ;
point.ligne= i;
point.colonne= j ;

}
}
}
return point ;
}




A voir également:

1 réponse

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut nass956,

Le prototype de ta fonction ne correspond pas au type de données que tu passes.

Si tu passes "tab", comme tu le fais, le paramètre dans le prototype de ta déclaration de fonction doit correspondre au type "int tab[L][C];", et donc tu devrais remplacer
struct element mini(int* tab2[L][C])
par
struct element mini(int tab2[L][C])
ou alors passer un pointeur vers ce tableau et corriger aussi le code de la fonction pour déréférencer le pointeur afin de parcourir le tableau (mais je ne vois pas trop l'intérêt de faire cela dans ton cas).

En compilant ton code avec les warnings gcc se plaint de cette incohérence.

Enfin, tu devrais terminer ton main par un
return 0;


Dal
0