В полученной матрице обнулить строку с номером k - C (СИ)
Формулировка задачи:
дано натуральное число n. Написать программу построения матрицы порядка n:
(Над диагональю стоят нули)
В полученной матрице обнулить строку с номером k. Вывести на экран исходную матрицу и полученную матрицы
Решение задачи: «В полученной матрице обнулить строку с номером k»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
void form_matrix (int **a, int n) {
int i,j,k;
for (j=0; j<n; j++) {
k=n;
for (i=j; i<n; i++) a[i][j]=k--;
}
}
void print_array (int **a, int n) {
int i,j;
for (i=0; i<n; i++) {
printf ("\n");
for (j=0; j<n; j++) printf ("%d ",a[i][j]);
}
}
int main () {
const int n=10;
int **a;
int i,j;
a = (int **) calloc (n, sizeof(int));
for (i=0; i<n; i++) a[i] = (int *) calloc (n, sizeof(int));
int k;
printf ("\nK="); scanf ("%d",&k);
form_matrix(a,n);
printf ("Исходная матрица");
print_array (a,n);
for (j=0; j<n; j++) a[k][j]=0;
printf ("\nПреобразованная матрица");
print_array (a,n);
getchar();
return 0;
}
Объяснение кода листинга программы
- В функции
mainобъявлены следующие переменные:n(константа, размер матрицы)a(двумерный массив, который будет представлять собой матрицу)i,j(используются в циклы для прохода по элементам матрицы)k(номер строки, которую нужно обнулить)
- Далее происходит инициализация матрицы. Для каждого элемента матрицы выделяется память с помощью
calloc, после чего каждый элемент заполняется значениями с помощью циклаfor. - После инициализации матрицы, пользователю предлагается ввести номер строки, которую нужно обнулить.
- Затем вызывается функция
form_matrix, которая формирует матрицу. В этой функции используется два циклаfor. Первый цикл проходит по всем элементам матрицы, а второй цикл изменяет значения элементов в строке с номеромk. - После формирования матрицы, вызывается функция
print_array, которая выводит матрицу на экран. - Далее в основной функции
mainпроисходит обнуление строки с номеромkв матрицеa. Для этого используется дополнительный циклfor, который проходит по всем элементам строки и устанавливает их значение равным нулю. - После обнуления строки, снова вызывается функция
print_array, которая выводит измененную матрицу на экран. - В конце программы вызывается функция
getchar, которая считывает символ из стандартного ввода и передает его в качестве параметра функцииreturn. Это необходимо для корректного завершения программы. - В конце программы возвращается значение 0, что означает успешное завершение программы.