Метод Зейделя. Не выводится результат вычислений - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д