Метод Зейделя. Не выводится результат вычислений - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Программа должна считать систему уравнений методом Зейделя. Программа запускается, вводятся все значения и после этого ничего не происходит.
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. #include <conio.h>
  6. #define s 20
  7. int main()
  8. {
  9. double e, temp;
  10. int n, i, j, itr, var, t;
  11. int a[s][s], b[s], x[s], p[s];
  12. int y;
  13. int code=0,code1=0;
  14. while(1){system("cls");
  15. printf(" PROGRAMMA ROZVIAZANNIA SUSTEMU LINIJNUH RIVNIAN' METODOM ZEIDELIA \n");
  16. printf("\n");
  17. printf("\n");
  18. printf(" OBERIT' PYNKT MENU:\n");
  19. printf("\n");
  20. printf("1. PERGLIAD YMOVU\n");
  21. printf("2. VUKONANIA PROGRAMU\n");
  22. printf("3. VUHID\n");
  23. do{
  24. fflush(stdin);
  25. code1=scanf("%d",&y);if (code1!=1) printf("DANI VVEDENO NEKOREKTNO\n");
  26. }
  27. while(code1!=1);
  28. system("CLS");
  29. if ((y!=1)&&(y!=2)&&(y!=3)) {printf("NEPRAVUL'NO VVEDENO PUNKT MENU, POVTORIT' VVOD\n");
  30. system("pause");}
  31. if (y==3) {break;}
  32. if(y==1){;
  33. printf(" YMOVA\n");
  34. printf("\n");
  35. printf("\n");
  36. 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");
  37. system("pause");
  38. }
  39. if (y==2) {
  40. printf("Vvedit' tochnist' rozrahynkiv: \n");
  41. scanf("%f", &e);
  42. printf("\n");
  43. printf ("Vvedit' rozmirnist' systemu rivnian':\n");
  44. scanf ("%d", &n);
  45. printf("\n");
  46. printf("Vvedit' matricy sustemu linijnuh rivnian'\n");
  47. for (i=0;i<n;i++) {
  48. for (j=0;j<n;j++) {
  49. printf("Element [%d][%d]=", i,j);
  50. scanf("%f",&a[i][j]);
  51. }
  52. }
  53. printf("\n");
  54. printf ("Vvedit' vector vilnuh chleniv:\n");
  55. for (i=0;i<n;i++) {
  56. printf("Element [%d]=", i);
  57. scanf("%f",&b[i]);
  58. }
  59. for (i=0; i<n; i++){
  60. t=0;
  61. for (j=0; j<n; j++) {
  62. if (j!=i) {t= t+ abs(a[i][j]);
  63. if (t >= abs(a[i][i])) {
  64. printf("\n");
  65. printf("Ymova zbizhnosti ne vukonyetcia\n");
  66. system("pause");
  67. return 0;
  68. }
  69. }
  70. }
  71. }
  72. printf("\n");
  73. printf ("Vvedit' pochatkove znachennia vectora rozviazky (zazvuchaj-0):\n");
  74. for (i=0;i<n;i++) {
  75. printf("Element [%d]=", i);
  76. scanf("%f",&x[i]);
  77. }
  78. do
  79. {
  80. itr++;
  81. temp=0;
  82. for (i=0; i<n; i++)
  83. {
  84. p[i]=x[i];
  85. var=0;
  86. for (j=0; j<n; j++)
  87. if (i!=j) var+=a[i][j]*x[j];
  88. x[i]=(b[i]-var)/a[i][i];
  89. temp+=fabs(p[i]-x[i]);
  90. }
  91. } while (temp > e);
  92. printf("\n");
  93. printf("Rozviazok sustemu rivnian: \n");
  94. for(i=0; i<n; i++) {
  95. printf("%3f",x[i]);
  96. }
  97. system("pause");
  98. return 0;
  99. }}}

Решение задачи: «Метод Зейделя. Не выводится результат вычислений»

textual
Листинг программы
  1. double e, temp;
  2. int n, i, j, itr;
  3. double var, t;
  4. double a[s][s], b[s], x[s], p[s];  
  5. int y;

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


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

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

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы