Pagini recente » Istoria paginii runda/arhiva-vianu | Cod sursa (job #342491) | Cod sursa (job #2549924) | Istoria paginii runda/preoji_4 | Cod sursa (job #1232867)
#include<cstdio>
int n,m,i,j,k,l;
double x[310][310],v[310],e=0.00000001;
FILE *f,*g;
void chg(double x,double y){
double aux=x;
x=y;
y=aux;
}
int main(){
f=fopen("gauss.in","r");
g=fopen("gauss.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=n+1;j++){
fscanf(f,"%lf",&x[i][j]);
}
}
i=j=1;
while(i<=n){
k=i;
while(x[k][j]<e){
k++;
}
if(k==n+1){
j++;
continue;
}
if(i!=k)
chg(x[i][j],x[k][j]);
for(k=i+1;k<=n;k++){
for(l=j+1;l<=m+1;l++){
x[k][l]-=x[k][j]*x[i][l];
}
x[k][j]=0;
}
i++;
j++;
}
for(i=n;i>=1;i--){
j=1;
while(x[i][j]<e){
j++;
}
if(j==m+1){
fprintf(g,"Imposibil");
return 0;
}
v[j]=x[i][m+1];
for(k=j+1;k<=m;k++){
v[j]-=x[i][k]*v[k];
}
}
for(i=1;i<=m;i++){
fprintf(g,"%.8lf ",v[i]);
}
fclose(f);
fclose(g);
return 0;
}