Метод Зейделя. Не выводится результат вычислений - 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;