«à l'aide»

Fermé
banene - 17 nov. 2014 à 10:21
evilfalcon Messages postés 58 Date d'inscription samedi 15 décembre 2012 Statut Membre Dernière intervention 10 novembre 2015 - 18 nov. 2014 à 09:23
Bonjour, mon but est d'écrire un programme en c composées des fcts suivantes
-fonction saisie() qui saisie un tableau à 2 dim d éntiers
-fonction produit () qui calcule le produit de 2 matrices d éntiers et met le resultat dans une troisiéme
-fonction affichage() qui affiche la matrice resultat du produit

#include <stdio.h>
#include <stdlib.h>
void saisie (int t[10][10],int a,int b){
for (i=0;i<= a-1;i++)
{
for (j=0;j<=b-1;j++){
printf("entrer un entier");
scanf("%d",&t[i][j]);
}
}
}
void produit (int t[10][10],v[10][10], prd [10][10],int a,int b,int c){
for (i=0;i<=a-1;i++){
for (j=0;j<=b-1;j++){
prod [i][j]=0;
for (k=0;k<=c-1;k++){
prod [i][j]=prod [i][j]+t[i][k]*t[k][j];
}
}
}
}
void affichage ( int prod [10][10],int a,int b){
for (i=0;i<=a-1;i++){
for (j=0;j<=b-1;j++){
print ("%d",&prod [10][10]);
}
}}

int main(){
int i,j,k,a,b,c;

return 0;
}


1 réponse

evilfalcon Messages postés 58 Date d'inscription samedi 15 décembre 2012 Statut Membre Dernière intervention 10 novembre 2015
Modifié par evilfalcon le 18/11/2014 à 09:23
#include <stdio.h>
#include <stdlib.h>

void menu();
char choix_menu();
void saisie_taille(int taille[2]);
void saisie (int matrice[10][10],int taille[2]);
void affichage_matrice(int matrice[10][10], int taille[2]);
void affichage(int matrice1[10][10], int matrice2[10][10], int taille1[2], int taille2[2]);
void multiplication_matricielle(int matrice1[10][10], int matrice2[10][10], int taille1[2], int taille2[2]);



int main()
{
    menu();
    return 0;
}

void saisie (int matrice[10][10],int taille[2])
{
    int i,j;
    saisie_taille(taille);

    for (i=0;i<= taille[0]-1;i++)
    {
        for (j=0;j<=taille[1]-1;j++)
        {
            printf("la valeur de ligne %d, colonne %d: ", i+1,j+1);
            scanf("%d",&matrice[i][j]);
            getchar();
        }
    }
}

void menu()
{
    int matrice1[10][10];
    int matrice2[10][10];
    int matrice3[10][10];
    int taille1[2] = {0,0};
    int taille2[2] = {0,0};
    char choix = 'a';
    do
    {
        affichage(matrice1, matrice2, taille1, taille2);
        choix = choix_menu();
        if (choix == 'a')
        {
            saisie(matrice1, taille1);
        }

        if (choix == 'b')
        {
            saisie(matrice2, taille2);
        }

        if (choix == 'c')
        {
            multiplication_matricielle(matrice1, matrice2, taille1, taille2);
        }

        if (choix == 'd')
        {
            multiplication_matricielle(matrice2, matrice1, taille2, taille1);
        }

    }while(choix != 'q');
}

void affichage(int matrice1[10][10], int matrice2[10][10], int taille1[2], int taille2[2])
{

    printf("\nMENU MULTIPLICATION DE MATRICE\n");
    printf("Matrice 1:\n");
    affichage_matrice(matrice1,taille1);
    printf("Matrice 2:\n");
    affichage_matrice(matrice2,taille2);

    printf("a. Remplir matrice 1. \n");
    printf("b. Remplir matrice 2. \n");
    printf("c. Multiplier matrice 1 par matrice 2.\n");
    printf("d. Multiplier matrice 2 par matrice 1.\n");
    printf("q. Quitter.\n");

}

void affichage_matrice(int matrice[10][10], int taille[2])
{
    int i,j;

    for (i=0;i<= taille[0]-1;i++)
    {
        for (j=0;j<=taille[1]-1;j++)
        {
            printf("%d ",matrice[i][j]);
        }
        printf("\n");
    }
}

char choix_menu()
{
    char choix;
    do
    {
        printf("votre choix?\n");
        scanf("%c",&choix);
        getchar();
        if (choix == 'a' || choix =='b' || choix =='c' || choix == 'd' ||choix =='q')
        {
            return choix;
        }
    }while(1);

}

void saisie_taille(int taille[2])
{
    printf("nombre de ligne: \n");
    scanf("%d", &taille[0]);
    getchar();
    printf("\nnombre de ligne: \n");
    scanf("%d", &taille[1]);
    getchar();
    printf("\n");
}

void multiplication_matricielle(int matrice1[10][10], int matrice2[10][10], int taille1[2], int taille2[2])
{
    int i,j,k;
    int matrice[10][10];
    int taille3[2];
    taille3[0]=taille1[0];
    taille3[1]=taille2[1];

    if (taille1[1] != taille2[0])
    {
        printf("multiplication de matrice impossible\n");
    }
    else
    {
        for (i=0;i<= taille3[0]-1;i++)
        {
            for (j=0;j<=taille3[1]-1;j++)
            {
                matrice[i][j] = 0;
                for (k=0; k<= taille1[1]-1; k++)
                {
                    matrice[i][j] = matrice[i][j] + matrice1[i][k] * matrice2[k][j];
                }
            }
        }
        printf("Le produit matriciel donne: \n");
        affichage_matrice(matrice, taille3);
        printf("Appuyer sur entrer pour revenir au menu!\n");
        getchar();
        printf("\n");
    }


}
-2