Метод Зейделя. Не выводится результат вычислений - C (СИ)
Формулировка задачи:
Программа должна считать систему уравнений методом Зейделя. Программа запускается, вводятся все значения и после этого ничего не происходит.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <conio.h> #define s 20 int main() { double e, temp; int n, i, j, itr, var, t; int a[s][s], b[s], x[s], p[s]; int y; int code=0,code1=0; while(1){system("cls"); printf(" PROGRAMMA ROZVIAZANNIA SUSTEMU LINIJNUH RIVNIAN' METODOM ZEIDELIA \n"); printf("\n"); printf("\n"); printf(" OBERIT' PYNKT MENU:\n"); printf("\n"); printf("1. PERGLIAD YMOVU\n"); printf("2. VUKONANIA PROGRAMU\n"); printf("3. VUHID\n"); do{ fflush(stdin); code1=scanf("%d",&y);if (code1!=1) printf("DANI VVEDENO NEKOREKTNO\n"); } while(code1!=1); system("CLS"); if ((y!=1)&&(y!=2)&&(y!=3)) {printf("NEPRAVUL'NO VVEDENO PUNKT MENU, POVTORIT' VVOD\n"); system("pause");} if (y==3) {break;} if(y==1){; printf(" YMOVA\n"); printf("\n"); printf("\n"); printf("Dana programa nadaje mozhluvist' rozviazyvatu sustemu linijnuh rivnian' \nza dopomogou metoda Zeidelia. Dlia cjogo dostatnjo vvestu matricy sustemu \nlinijnuh rivnian', vil'ni chlenu i tochnist' obchuslenia, a dali programa sama \nvudast' rozviazok\n"); system("pause"); } if (y==2) { printf("Vvedit' tochnist' rozrahynkiv: \n"); scanf("%f", &e); printf("\n"); printf ("Vvedit' rozmirnist' systemu rivnian':\n"); scanf ("%d", &n); printf("\n"); printf("Vvedit' matricy sustemu linijnuh rivnian'\n"); for (i=0;i<n;i++) { for (j=0;j<n;j++) { printf("Element [%d][%d]=", i,j); scanf("%f",&a[i][j]); } } printf("\n"); printf ("Vvedit' vector vilnuh chleniv:\n"); for (i=0;i<n;i++) { printf("Element [%d]=", i); scanf("%f",&b[i]); } for (i=0; i<n; i++){ t=0; for (j=0; j<n; j++) { if (j!=i) {t= t+ abs(a[i][j]); if (t >= abs(a[i][i])) { printf("\n"); printf("Ymova zbizhnosti ne vukonyetcia\n"); system("pause"); return 0; } } } } printf("\n"); printf ("Vvedit' pochatkove znachennia vectora rozviazky (zazvuchaj-0):\n"); for (i=0;i<n;i++) { printf("Element [%d]=", i); scanf("%f",&x[i]); } do { itr++; temp=0; for (i=0; i<n; i++) { p[i]=x[i]; var=0; for (j=0; j<n; j++) if (i!=j) var+=a[i][j]*x[j]; x[i]=(b[i]-var)/a[i][i]; temp+=fabs(p[i]-x[i]); } } while (temp > e); printf("\n"); printf("Rozviazok sustemu rivnian: \n"); for(i=0; i<n; i++) { printf("%3f",x[i]); } system("pause"); return 0; }}}
Решение задачи: «Метод Зейделя. Не выводится результат вычислений»
textual
Листинг программы
double e, temp; int n, i, j, itr; double var, t; double a[s][s], b[s], x[s], p[s]; int y;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д