Pagini recente » Cod sursa (job #2453377) | Cod sursa (job #3127432) | Cod sursa (job #2273837) | Cod sursa (job #483462) | Cod sursa (job #625688)
Cod sursa(job #625688)
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * f = fopen("gauss.in", "r");
int n,m;
float a[302][302];
fscanf(f, "%i%i", &n, &m);
int i,j;
m++;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
fscanf(f, "%f", a[i] + j);
}
}
fclose(f);
f = fopen("gauss.out", "w");
m--; n = m; m++;
for (i = 0; i < n-1; i++)
{
for (j = i+1; j < n; j++)
{
int k, imp =0;
for (k = 0; k < m; k++)
{
a[j][k] += a[i][k]*(-a[j][i] / a[i][i]);
//if (a[j][k] == 0 && k != m-1)
//{
// imp++;
//}
}
/**if (imp == m-1)
{
fprintf(f, "Imposibil\n");
fclose(f);
return 0;
}*/
}
}
float sol[302] = {0}, sum;
for (i = n-1; i >= 0; i--)
{
sum = 0;
for (j = i + 1; j < m-1 ; j++)
{
sum += a[i][j] * sol[j];
}
/*if (sum == 0 && a[i][i] == 0 )
{
fprintf(f, "Imposibil\n");
fclose(f);
return 0;
}*/
sol[i] = (a[i][m-1] - sum) / a[i][i];
}
for (i = 0; i < n; i++)
{
fprintf(f, "%f ", sol[i]);
}
fclose(f);
}