Ввод элементов матрицы с клавиатуры - C (СИ)

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

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

у меня дано СЛАУ методом гаусса:
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. main()
  5. {
  6. clrscr();
  7. float a[50][51], x[50], t;
  8. int i, j, k, m, n;
  9. n=3; m=n+1;
  10. a[0][0]= 1; a[0][1]= 3; a[0][2]= 1; a[0][3]= 3;
  11. a[1][0]= 1; a[1][1]= 2; a[1][2]= 3; a[1][3]= 7;
  12. a[2][0]= 3; a[2][1]= 9; a[2][2]= 5; a[2][3]= 13;
  13. printf("Ishodnaya matrica \n \n");
  14. for (j = 0; j < n; j++)
  15. {
  16. for (i = 0; i < m; i++)
  17. printf("%6.2f\t", a[j][i]);
  18. printf("\n");
  19. x[j] = 0;
  20. }
  21. for (j = 0; j < n; j++)
  22. if (a[j][i] == 0)
  23. {
  24. k = j;
  25. while ((a[k+1][j] == 0) && (k < n))
  26. k++;
  27. if (a[k+1][j] != 0)
  28. for (i = 0; i < m; i++)
  29. {
  30. t = a[j][i];
  31. a[j][i] = a[k+1][i];
  32. a[k+1][i] = t;
  33. }
  34. else
  35. printf("SLAU imeet mnozhestvo resheniy\n \n");
  36. }
  37. for (k = 0; k < n - 1; k++)
  38. for (j = k + 1; j < n; j++)
  39. {
  40. if (a[k][k] !=0)
  41. {
  42. t = a[j][k] / a[k][k];
  43. for (i = 0; i < n + 1; i++)
  44. a[j][i] = a[k][i] * t - a[j][i];
  45. }
  46. else
  47. printf("SLAU ne imeet resheniy\n \n");
  48. }
  49. printf("\n Matrica privedena k treugol'nomu vidu:\n\n");
  50. for (j = 0; j < n; j++)
  51. {
  52. for (i = 0; i < n + 1; i++)
  53. printf("%6.2f\t", a[j][i]);
  54. printf("\n");
  55. }
  56. for (j = n - 1 ; j >= 0; j--)
  57. {
  58. t = a[j][n];
  59. for (i = j + 1; i < n; i++)
  60. t= t - a[j][i] * x[i];
  61. x[j] = t / a[j][j];
  62. }
  63. printf("\n Korni SLAU:\n\n");
  64. for (i = 0; i < n; i++)
  65. printf("x%d = %6.2f\n", i, x[i]);
  66. getch();
  67. }
Проблема в том, что у меня задана сразу матрица. Мне нужно чтобы я вводил матрицу с клавиатуры...помогите пожалуйста

Решение задачи: «Ввод элементов матрицы с клавиатуры»

textual
Листинг программы
  1.   float a[50][51];
  2.   for(i=0;i<50;i++)
  3.   {
  4.     for(u=0;u<51;u++)
  5.      {  
  6.        scanf("%f",a[i][u]);
  7.      }
  8.   }

Объяснение кода листинга программы

В этом коде:

  1. Объявляется двумерный массив a типа float размером 50x51.
  2. Затем происходит два вложенных цикла, которые инициализируют все элементы массива a.
  3. Внешний цикл выполняется 50 раз, перебирает первые 50 строк массива a.
  4. Внутренний цикл выполняется 51 раз, перебирает все столбцы массива a.
  5. В каждой итерации внутреннего цикла, с помощью функции scanf(), происходит ввод с клавиатуры значения для соответствующего элемента массива a.
  6. Значение вводится в формате float, то есть вводится число с плавающей точкой.
  7. Введенное значение сохраняется в соответствующем элементе массива a.
  8. После завершения обоих циклов, программа продолжает работу с заполненным массивом a.

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


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

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

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

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

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

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