Метод Гаусса для СЛАУ - C (СИ)
Формулировка задачи:
Здравствуйте, вот код, консоль запускается, но никакого вывода нет.
OpenMP подключил.
Вот что выдает:
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <omp.h> #include <math.h> #include <string.h> #define M 800 long double MA[M][M+1], MA2[M][M+1], V[M+1], X[M], MAD, OTV[M]; int printMatrix(){ return 0; int k, d; for (k = 0; k < M; k++){ for (d = 0; d <= M; d++){ printf("%.2Lf ", MA[k][d]); } printf("\n"); } printf("\n"); } int main(int args, char **argv){ int size, i, j, v, k, d, p, J; int * mas; long double MAX; double wtime1, wtime2, wtick; for (i = 0; i < M; i++){ for (j = 0; j <= M; j++){ fscanf(stdin, "%Lf", &MA[i][j]); } } printMatrix(); memcpy(MA2, MA, sizeof(long double)*M*(M+1)); wtime1 = omp_get_wtime(); for (i = 0; i < M; i++){ printMatrix(); MAX = fabsl(MA[i][i]); J = i; for (j = i+1; j < M; j++){ if (fabsl(MA[j][i]) > MAX){ MAX = fabsl(MA[j][i]); J = j; } } if (J != i){ memcpy(V, &MA[i][i], sizeof(long double)*(M+1-i)); memcpy(&MA[i][i], &MA[J][i], sizeof(long double)*(M+1-i)); memcpy(&MA[J][i], V, sizeof(long double)*(M+1-i)); } printMatrix(); if (MA[i][i] != 0){ for (j = M; j >= i; j--) MA[i][j] /= MA[i][i]; }else{ fprintf(stderr, "Система не совместна\nMA[%d]=%.2Lf MA[%d][%d] = %.2Lf\n", i, MA[i][i], i, j, MA[i][j]); return 0; } printMatrix(); for (k = i+1; k < M; k++){ for (d = M; d >= i; d--){ MA[k][d] -= MA[k][i]*MA[i][d]; } } printMatrix(); } for ( i = 0; i < M; i++ ) X[i] = MA[i][M]; for ( i = M - 2; i >= 0; i-- ) for ( j = i + 1; j < M; j++ ) X[i] -= X[j] * MA[i][j]; wtime2 = omp_get_wtime(); fprintf(stderr, "Время работы программы %.9f\n", wtime2-wtime1); for (i = 0; i < M; i++){ MAD = 0; for (j = 0; j < M; j ++){ MAD += MA2[i][j]*X[j]; } MAD -= MA2[i][M]; if (i < M-1) printf("%.12Lf+", MAD); else printf("%.12Lf\n", MAD); } printf("\n"); return 0; }
Решение задачи: «Метод Гаусса для СЛАУ»
textual
Листинг программы
int printMatrix(){ return 0; // Это вообще зачем тут? int k, d; for (k = 0; k < M; k++){
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д