Ввод элементов матрицы с клавиатуры - 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]);
}
}
Объяснение кода листинга программы
В этом коде:
- Объявляется двумерный массив
aтипаfloatразмером 50x51. - Затем происходит два вложенных цикла, которые инициализируют все элементы массива
a. - Внешний цикл выполняется 50 раз, перебирает первые 50 строк массива
a. - Внутренний цикл выполняется 51 раз, перебирает все столбцы массива
a. - В каждой итерации внутреннего цикла, с помощью функции
scanf(), происходит ввод с клавиатуры значения для соответствующего элемента массиваa. - Значение вводится в формате
float, то есть вводится число с плавающей точкой. - Введенное значение сохраняется в соответствующем элементе массива
a. - После завершения обоих циклов, программа продолжает работу с заполненным массивом
a.