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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы