Ввод матрицы с клавиатуры - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <conio.h> #include <math.h> #define Max 100 #define N 5 int main () {float min; int i,j,C[N][N]= {{0,100,2,1,2}, {2,0,100,8,1}, {100,1,0,1,3}, {1,100,2,0,1}, {100,2,5,5,0}},A[N][N],B[N][N],B_new[N][N],k,fl; for (i=0;i<N;++i) for (j=0;j<N;++j) A[i][j]=B[i][j]=C[i][j]; for (int i=0; i<N; i++) for (int j=0; j<N; j++) //if ((i==j || i==N-j) && C[i][i]>0) //замена диагональных элементов матрицы на 0 C[i][i]= A[i][i] =B[i][i]=0; //B_new[i][j] do{fl=0; for (i=0;i<N;++i) for (j=0;j<N;++j){ min = A[i][0]+B[0][j]; for (k=1;k<N;++k){ B_new[i][j]=A[i][k]+B[k][j]; if( min >(A[i][k]+B[k][j])) min = A[i][k]+B[k][j]; B_new[i][j]= min; } } for(i=0;i<N;i++){ for(j=0;j<N;j++){ if(B[i][j]!=B_new[i][j]) {fl=1; for (i=0;i<N;++i) for (j=0;j<N;++j) B[i][j]=B_new[i][j]; break; }}} if(fl) break; }while(fl); //exit printf("Matrix B\n"); for ( i = 0; i < N; i ++ ) { for ( j = 0; j < N; j ++ ) printf ( "\t%d" ,B[i][j] ); printf("\n"); } return 0; }
Решение задачи: «Ввод матрицы с клавиатуры»
textual
Листинг программы
for (int i = 0; i<n; i++){ for (int j = 0; j<m; j++){ scanf_s("%i", &matrica[i][j]); } }
Объяснение кода листинга программы
- Переменная
n
содержит количество строк в матрице. - Переменная
m
содержит количество столбцов в матрице. - Матрица
matrica
представляет собой двумерный массив, в котором хранятся значения, введенные пользователем. - Ввод значений матрицы осуществляется с помощью функции
scanf_s
, которая считывает целочисленное значение и записывает его в соответствующую ячейку матрицы. - Внешний цикл
for
выполняетсяn
раз, перебирая строки матрицы. - Внутренний цикл
for
выполняетсяm
раз, перебирая столбцы матрицы. - В каждой итерации внутреннего цикла происходит считывание значения из стандартного ввода с помощью функции
scanf_s
и запись его в соответствующую ячейку матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д