Ввод элементов матрицы с клавиатуры - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д