A voir également:
- Appel d'une matrice dans une fonction
- Fonction si et - Guide
- Appel anonyme - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Fonction moyenne excel - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule ✓ - Forum Excel
5 réponses
Utilisateur anonyme
Modifié par lord_abdennour le 13/09/2010 à 02:53
Modifié par lord_abdennour le 13/09/2010 à 02:53
c bon il y a des erreurs indétectables au premier regard
on commence par la fonction somme
voici ta version
# il faut corriger l prototype comme je l'ai dit auparavant.
# la ligne du code
on la remplace par
car on ne put pas déclarer un tableau a taille variable, mais on peut le créer grâce a l'allocation dynamique
notez que "N_MAX" et "M_MAX" ne sont pas des variables
# quand vous faite
a l'intérieur de la fonction somme les variable n et m sont déclarée mais il n'ont aucune valeur , il faut donc penser au passage des valeurs des dimension du tableau
alors on change le prototype de la fonction somme comme suite
DANS LE MAIN()
#quand vous faite
vous arrêter la fonction main() par l'instruction "return 0"
et le "getch()" ne s'execute pas
#question affichage de la matrice
au lieu de faire
fait plutot :
espace les %d sinon tout les éléments de la ligne de cette matrice apparaissent comme un seul nombre
___________________________________________________
enfin voici ton programme après ces modifications :
_____________________________________________________
DÉSOLÉ POUR LE RETARD JE CROYAIS QUE LE SUJET ÉTÉ DÉJÀ RÉSOLU PAR MA PREMIÈRE INTERVENTION
on commence par la fonction somme
voici ta version
void somme (int A[][M_MAX],int B[][M_MAX]) { int n,m; int som[n][m], i,j; for(i=0;i<n;i++) for(j=0;j<m;j++) som[i][j]=A[i][j]+B[i][j]; for(i=0;i<n;i++) { printf("|"); for(j=0;j<m;j++) printf("%d",som[i][j]); printf("|\n"); } }
# il faut corriger l prototype comme je l'ai dit auparavant.
# la ligne du code
int som[n][m], i,j;est fausse
on la remplace par
int som[N_MAX][M_MAX], i,j;
car on ne put pas déclarer un tableau a taille variable, mais on peut le créer grâce a l'allocation dynamique
notez que "N_MAX" et "M_MAX" ne sont pas des variables
# quand vous faite
for(i=0;i<n;i++) for(j=0;j<m;j++)
a l'intérieur de la fonction somme les variable n et m sont déclarée mais il n'ont aucune valeur , il faut donc penser au passage des valeurs des dimension du tableau
alors on change le prototype de la fonction somme comme suite
void somme (int A[N_MAX][M_MAX],int B[N_MAX][M_MAX], int n ,int m);
DANS LE MAIN()
#quand vous faite
return 0; getch();
vous arrêter la fonction main() par l'instruction "return 0"
et le "getch()" ne s'execute pas
#question affichage de la matrice
au lieu de faire
printf("%d",som[i][j]);
fait plutot :
printf(" %d ",som[i][j]);
espace les %d sinon tout les éléments de la ligne de cette matrice apparaissent comme un seul nombre
___________________________________________________
enfin voici ton programme après ces modifications :
#include<stdio.h> #include<conio.h> #define N_MAX 10 #define M_MAX 10 void somme (int A[N_MAX][M_MAX],int B[N_MAX][M_MAX], int n ,int m); int main() { int n,m,i,j,A[N_MAX ][M_MAX ],B[N_MAX ][M_MAX ]; printf("Donnez les dimensions des matrices\n"); scanf("%d%d",&n,&m); printf("Remplir la matrice A\n"); for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&A[i][j]); printf("Remplir la matrice B\n"); for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&B[i][j]); somme (A,B,n,m); getch(); return 0; } void somme (int A[N_MAX][M_MAX],int B[N_MAX][M_MAX],int n ,int m) { int som[N_MAX][M_MAX],i,j; for(i=0;i<n;i++) for(j=0;j<m;j++) som[i][j]=A[i][j]+B[i][j]; for(i=0;i<n;i++) { printf("|"); for(j=0;j<m;j++) printf(" %d ",som[i][j]); printf("|\n"); } }
_____________________________________________________
DÉSOLÉ POUR LE RETARD JE CROYAIS QUE LE SUJET ÉTÉ DÉJÀ RÉSOLU PAR MA PREMIÈRE INTERVENTION
Utilisateur anonyme
11 sept. 2010 à 03:03
11 sept. 2010 à 03:03
l'erreur est dans le prototype de la fonction somme :
void somme (int A[N_MAX][M_MAX],int B[N_MAX][M_MAX]);
et non pas
void somme (int A[][M_MAX],int B[][M_MAX]);
(avant le main() ,et après car cette erreur est commise 2 fois )
void somme (int A[N_MAX][M_MAX],int B[N_MAX][M_MAX]);
et non pas
void somme (int A[][M_MAX],int B[][M_MAX]);
(avant le main() ,et après car cette erreur est commise 2 fois )
c fait mais jai toujours le meme probleme ça bogue à lappel
void somme (int A[N_MAX ][M_MAX],int B[N_MAX ][M_MAX]);
au début et à la fin comme tu l'as di
merci
void somme (int A[N_MAX ][M_MAX],int B[N_MAX ][M_MAX]);
au début et à la fin comme tu l'as di
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
13 sept. 2010 à 02:56
13 sept. 2010 à 02:56
C'EST MA MAILLURE REPENSE MON AMI
SI TU EST SATISFAIT MARQUE LE SUJET COMME ÉTANT RÉSOLU
a bientôt
SI TU EST SATISFAIT MARQUE LE SUJET COMME ÉTANT RÉSOLU
a bientôt