Bonjour,
je suis confrontée à un problème que je n'arrive pas à résoudre. G 1 mini projet en informatique qui concerne les opérations sur les matrices. g essayé de programmer ces opérations mais il ya certaines erreurs que je n'arrive pas à corriger. merci de m'aider dans les plus brefs délais. Voici mon programme:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void saisie(int l,int c,float m[50][50])
{
int i,j;
for(i=0;i<l;i++)
{
for(j=0;j<c;j++)
{
printf("m[%d][%d]=",i,j);
scanf("%f",&m[i][j]);
}
}
}
void affichage(float m[50][50],int l,int c)
{
int i,j;
for(i=0;i<l;i++)
{
for(j=0;j<c;j++)
{
printf("m[%d][%d]=%f",i,j,m[i][j]);
}
}
}
float somme(float m1[50][50],float m2[50][50],int l,int c)
{
int i,j;
for(i=0;i<l;i++)
{
for(j=0;j<c;j++)
{
return m1[i][j]+=m2[i][j];
}
}
}
float multiplication(float m[50][50],int l,int c,float a)
{
int i,j;
for(i=0;i<l;i++)
{
for(j=0;j<c;j++)
{
return a*=m[i][j];
}
}
}
float produit(float m1[50][50],float m2[50][50],int l1,int k,int c2)
{
int i,j,f;
switch(w)
{
case'c': {
int l,c; float m[50][50];
printf("entrer le nombre de lignes");
scanf("%d",&l);
printf("entrer le nombre de colonnes");
scanf("%d",&c);
saisie(l,c,m);
}
break;
case'a': {
int l,c; float m[50][50];
printf("entrer le nombre de lignes");
scanf("%d",&l);
printf("entrer le nombre de colonnes");
scanf("%d",&c);
saisie(l,c,m);
affichage(m,l,c);
}
break;
case's': {
int l,c;
float m1[50][50],m2[50][50];
printf("entrer le nombre de lignes");
scanf("%d",&l);
printf("entrer le nombre de colonnes");
scanf("%d",&c);
saisie(l,c,m1);
saisie(l,c,m2);
somme(m1,m2,l,c);
}
break;
case'm': {
int l,c,a; float m[50][50];
printf("entrer le nombre de lignes");
scanf("%d",&l);
printf("entrer le nombre de colonnes");
scanf("%d",&c);
saisie(l,c,m);
printf("entrer le nombre");
scanf("%d",&a);
multiplication(m,l,c,a);
}
break;
case'p': {
int l,c,k;
float m1[50][50],m2[50][50];
printf("entrer le nombre de lignes de la premiere matrice");
scanf("%d",&l);
printf("entrer le nombre de colonnes de la premiere matrice");
scanf("%d",&k);
printf("entrer le nombre de lignes de la deuxieme matrice");
scanf("%d",&k);
printf("entrer le nombre de colonnes de la deuxieme matrice");
scanf("%d",&c);
saisie(l,k,m1);
saisie(k,c,m2);
produit(m1,m2,l,k,c);
}
break;
case't': {
int l,c; float m[50][50];
printf("entrer le nombre de lignes");
scanf("%d",&l);
printf("entrer le nombre de colonnes");
scanf("%d",&c);
saisie(l,c,m);
transposition(m,l,c);
}
break;
case'd': {
int n; float m[50][50];
printf("entrer le nombre de lignes et de colonnes");
scanf("%d",&n);
saisie(n,n,m);
determinant(m,n);
}
break;
case'i': {
int n; float m[50][50];
printf("entrer le nombre de lignes et de colonnes");
scanf("%d",&n);
saisie(n,n,m);
inverse(m,n,n);
}
break;
case'q': exit(0);
break;
}
}
while (w!='q');
fflush(stdin);
return(0);
system("pause");
Donnez-nous des programmes indentés; ça me décourage de les lire, surtout s'ils font 300 lignes !!!
Bon y'a au moins une erreur dans la somme et la multiplication:
- la boucle ne s'exécutera qu'une fois pour i = j = 0 ... puisqu'il y a un 'return' qui termine la fonction.
en fait, lorsque je compile le programme avec le devC++, il apparait des erreurs au niveau des fonctions determinant, comat et inverse. ces erreurs sont dues à une imcopatibilité de conversion des types et je ne sait comment resoudre ces erreurs! est-ce ke tu peux m'aider stp? J'en ai vraiment besoin! merci.