Bonjour, j'ai un exercice à faire qui consiste à multiplier une matrice par un scalaire en C (la prof ne veut pas qu'on se serve des boucles FOR), je viens d'écrire ce programme qui m'a l'air bon, mais qui bug une fois que j'ai saisi la matrice et le scalaire !
Merci d'avance pour votre aide !
Voici le programme
// EXERCICE 2 : MULTIPLICATION D'UNE MATRICE PAR UN SCALAIRE //
#include <stdio.h>
#define nb_ligne 4
#define nb_colonne 4
typedef int TAB_BASE[nb_ligne][nb_colonne];
typedef int TAB_MULTI[nb_ligne][nb_colonne];
//Sous-programme de saisie de la matrice///////////////////////////////////
void saisie_matrice(TAB_BASE t)
{
int i = 0;
printf("Saisissez la matrice que vous souhaitez multplier par un scalaire\n");
while(i<nb_ligne)
{
int j = 0;
while(j<nb_colonne)
{
printf("Saisissez le champ [%d][%d] : ",i,j);
scanf("%d",&t[i][j]);
j = j+1;
}
i=i+1;
}
return;
}
/////////////////////////////////////////////////////////////////////////
//Sous-programme de saisie du scalaire///////////////////////////////////
int saisie_scalaire(int scalaire)
{
printf("Saisissez le scalaire que vous souhaitez multiplier par la matrice : ");
scanf("%d",scalaire);
return scalaire;
}
////////////////////////////////////////////////////////////////////////
//Sous-programme de multiplication de la matrice de base par le scalaire////
void multiplication(TAB_BASE t,int scalaire,TAB_MULTI m)
{
int i = 0;
while(i<nb_ligne)
{
int j = 0;
while(j<nb_colonne)
{
m[i][j]=t[i][j]*scalaire;
}
i=i+1;
}
return;
}
/////////////////////////////////////////////////////////////////////////
int main(void)
{
TAB_BASE t;
TAB_MULTI m;
int i,j,scalaire;
saisie_matrice(t);
saisie_scalaire(scalaire);
multiplication(t,scalaire,m);
//Affichage du produit scalaire//
printf("Le produit scalaire choisi est : %d",scalaire);
/////////////////////////////////
// Affichage de la matrice de base//
printf("La matrice de base est : \n");
i = 0;
while(i<nb_ligne)
{
j = 0;
while(j<nb_colonne)
{
printf("%d ",t[i][j]);
}
printf("\n");
i=i+1;
}
////////////////////////////////////
//Affichage de la matrice obtenue//
printf("La matrice obtenue est : \n");
i = 0;
while(i<nb_ligne)
{
j = 0;
while(j<nb_colonne)
{
printf("%d ",m[i][j]);
}
printf("\n");
i=i+1;
}
////////////////////////////////////
}