Programme en C
Résolu
adama36
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Programme en C
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
salut,
essyes avec ce pgm:
cordialement
essyes avec ce pgm:
#include <stdio.h> #include <stdlib.h> #define nl 3 #define nc 3 void saisi(int mat[nl][nc]) { int i,j; for(i=0;i<nl;i++) { for(j=0;j<nc;j++) { printf("Entrer l\'element en indice %d et %d \n",i,j); scanf("%d",&mat[i][j]); } } } void affiche(int mat[nl][nc]) { int i,j; for(i=0;i<nl;i++) { for(j=0;j<nc;j++) { printf(" %d",mat[i][j]); } printf("\n"); } } int somme(int mat[nl][nc]) { int i,j,s=0; for(i=0;i<nl;i++) { s=s+mat[i][i]; } return s; } void maximum(int mat[nl][nc],int max) { int i,j; for(i=0;i<nl;i++) { max=mat[i][0]; for(j=0;j<nc;j++) { if(mat[i][j]>max) max=mat[i][j]; } printf("le maximum sur la ligne %d est %d\n",i,max); } } int main() { int i,j,s,max; int mat[nl][nc]; puts("Saisi des donnee"); saisi(mat); puts("Affichage de la matrice"); affiche(mat); printf("Somme des elements de la diagonal principal est %d\n",somme(mat)); puts("Le maximum de chaque ligne"); maximum(mat,max); return 0; }
cordialement
Salut,
T'as plusieurs erreurs. Lorsque tu envoies un tableau, il ne faut pas envoyer la dimension (puisque c'est un pointeur que tu envoies).
Et tu as fait s=+tab[i][j] au lieu de s+=tab[i][j].
Je t'ai également simplifié la méthode somme. Tu n'as pas besoin de parcourir tout le tableau pour faire les sommes de la diagonale.
Cdlt
T'as plusieurs erreurs. Lorsque tu envoies un tableau, il ne faut pas envoyer la dimension (puisque c'est un pointeur que tu envoies).
Et tu as fait s=+tab[i][j] au lieu de s+=tab[i][j].
Je t'ai également simplifié la méthode somme. Tu n'as pas besoin de parcourir tout le tableau pour faire les sommes de la diagonale.
#include <stdio.h> #define nl 3 #define nc 3 void saisi(int mat[nl][nc]) { int i,j; for(i=0;i<nl;i++) { for(j=0;j<nc;j++) { printf("Entrer l\'element en indice %d et %d \n",i,j); scanf("%d",&mat[i][j]); } } } void affiche(int mat[nl][nc]) { int i,j; for(i=0;i<nl;i++) { for(j=0;j<nc;j++) { printf("%d ",mat[i][j]); } putchar('\n'); } } int somme(int mat[nl][nc]) { int i,s=0; for(i=0;i<(nl<nc?nl:nc);i++) s+=mat[i][i]; return s; } void maximum(int mat[nl][nc],int *max) { int i,j; for(i=0;i<nl;i++) { *max=mat[i][0]; for(j=0;j<nc;j++) { if(mat[i][j]>*max) *max=mat[i][j]; } printf("le maximum sur la ligne %d est %d\n",i,*max); } } int main(void) { int mat[nl][nc]; int s,max; puts("Saisi des donnee"); saisi(mat); puts("Affichage de la matrice"); affiche(mat); s=somme(mat); printf("Somme des elements de la diagonal principal est %d\n",s); puts("Le maximum de chaque ligne"); maximum(mat,&max); return 0; }
Cdlt
on peut ne pas passer le parametre max par valeur puisque l'affichage est dans la procedure elle même .n'est ce pas?
Oui. Il faut passer l'adresse pour pouvoir modifier la variable max se situant dans la fonction appelante (ici main).
Soit par : int *max; maximum(mat,max); soit par int max; maximum(mat,&max);
Oui. Il faut passer l'adresse pour pouvoir modifier la variable max se situant dans la fonction appelante (ici main).
Soit par : int *max; maximum(mat,max); soit par int max; maximum(mat,&max);