Bonjour,
Je recherche activement de l'aide concernant ce programme ci dessous permettant de résoudre le système linéaire Ax=b et contanant éalement les donctions de saisie, d'affichage, de remontée, d'élimination et de permutation, j'y travaille depuis une semaine et à la compilation on me renvoie toujours des erreurs, là je suis vraiment bloqué. Je compte très sincèrement sur votre aide pour débugger le programme ou s'il le faut me donner le lien d'un programme similaire qui marche car c'est un projet que je dois rendre demain. En vous remerciant chaleureusement j'espère avoir bientôt de vos nouvelles. Bonne journée.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
/*Les fonctions*/
int saisie_taille();
int recherche_pivot(k,i0,A);
/*Les proc‚dures*/
void saisie_matrice(n,A);
void afficher(x,n);
void remontee(b,x,A);
void elimination(k,b,A);
void permuter(k,i0,b,A);
int main ()
{
const max=100;
int A[max][max];
int b[max],x[max];
int k,n,i0,arret;
/*D‚but du programme*/
n = saisie_taille();
saisie_matrice(n,A);
k=1; arret=0;
do
{
if (A[k][k]!=0)
{
elimination(k,b,A);
k+=1;
}
else if (A[k][k]==0)
i0=recherche_pivot(k,i0,A);
if (i0==k)
{
elimination(k,i0,A);
k+=1;
}
else if (i0!=k)
{
permuter(k,i0,b,A);
elimination(k,b,A);
k+=1;
}
else
arret=1;
}while(arret=1 || k=n);
if ( arret=0 && A[n][n]!=0 )
{
remontee(A,b,x);
afficher(x);
}
else
printf("Pas de solution");
return 0;
}
/* fonction qui saisit n*/
int saisie_taille()
{
int n;
do
{
printf("donner n");
scanf("%s",&n);
}while((n>0) && (n<=max));
return n;
}
/*fonction recherche pivor*/
int recherch_pivot(A,k)
{
int i0;
while ((i0<=n) && A[i0][k]==0)
{
i0-=1;
if (i0==(n-1))
i0=0;
}
return 0;
}
/*procedure qui saisit les ‚l‚ments d'une matrice*/
void saisi_matrice(n,A)
{
for(int i=0;i<=n;i++)
for(int=0;j<=n;j++)
{
printf("Donner A[%d][%d]",i,j);
scanf("%d",&A[i][j]);
}
}
/*procedure afficher*/
void afficher(n,x)
{
for (int i=0;i<=n;i++)
printf("%d",x[i]);
}
/*procedure remont‚e*/
void remontee(A,b,x)
{
for(int i=0;i<=(n-1);i--)
{
x[i]=b[i];
for(int j=i+1;j<=n;j++)
{
c=x[i]-(A[i][j]*x[j]);
x[i]=c/A[i][j];
}
}
}
/* procedure d'elimination*/
void elimination (A,b,k);
{
float r;
for(int i=k+1;i<=n;i++)
{
r=A[i][k]/A[k][k];
for(int j=k;j<=n;j++)
{
A[i][j]=A[i][j]-(r*A[k][j]);
b[i]=b[i]-(r*b[k]);
}
}
}
/*proc‚dure permuter */
void permuter (A,i0,k,b);
{
int tp,l2,li;
for(int j=1;j<=n;j++)
{
A[k][j]=tp;
tp=A[li][j];
A[l2][j]=tp;
}
b[li]=tp;
tp=b[l2];
b[l2]=b[li];
}