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

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

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

у меня дано СЛАУ методом гаусса:
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
  clrscr();
 
  float a[50][51], x[50], t;
  int i, j, k, m, n;
  n=3; m=n+1;
  a[0][0]= 1; a[0][1]= 3; a[0][2]= 1; a[0][3]= 3;
  a[1][0]= 1; a[1][1]= 2; a[1][2]= 3; a[1][3]= 7;
  a[2][0]= 3; a[2][1]= 9; a[2][2]= 5; a[2][3]= 13;
 
  printf("Ishodnaya matrica \n \n");
  for (j = 0; j < n; j++)
  {
    for (i = 0; i < m; i++)
      printf("%6.2f\t", a[j][i]);
    printf("\n");
    x[j] = 0;
  }
 
  for (j = 0; j < n; j++)
    if (a[j][i] == 0)
    {
      k = j;
      while ((a[k+1][j] == 0) && (k < n))
    k++;
      if (a[k+1][j] != 0)
    for (i = 0; i < m; i++)
    {
      t = a[j][i];
      a[j][i] = a[k+1][i];
      a[k+1][i] = t;
    }
      else
    printf("SLAU imeet mnozhestvo resheniy\n \n");
    }
 
  for (k = 0; k < n - 1; k++)
    for (j = k + 1; j < n; j++)
    {
      if (a[k][k] !=0)
      {
    t = a[j][k] / a[k][k];
    for (i = 0; i < n + 1; i++)
      a[j][i] = a[k][i] * t - a[j][i];
      }
      else
    printf("SLAU ne imeet resheniy\n \n");
    }
 
  printf("\n Matrica privedena k treugol'nomu vidu:\n\n");
 
  for (j = 0; j < n; j++)
  {
    for (i = 0; i < n + 1; i++)
      printf("%6.2f\t", a[j][i]);
    printf("\n");
  }
 
  for (j = n - 1 ; j >= 0; j--)
  {
    t = a[j][n];
    for (i = j + 1; i < n; i++)
      t= t - a[j][i] * x[i];
    x[j] = t / a[j][j];
  }
 
  printf("\n Korni SLAU:\n\n");
 
  for (i = 0; i < n; i++)
    printf("x%d = %6.2f\n", i, x[i]);
 
  getch();
}
Проблема в том, что у меня задана сразу матрица. Мне нужно чтобы я вводил матрицу с клавиатуры...помогите пожалуйста

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

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

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

В этом коде:

  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
Похожие ответы