Матрица в которой главная диагональ единицы - C (СИ)
Формулировка задачи:
Написать программу, которая печатает на экране квадратную матрицу, размерность которой вводит пользователь с клавиатуры. Требуется матрица в которой главная диагональ единицы а остальное нули.
Решение задачи: «Матрица в которой главная диагональ единицы»
textual
Листинг программы
#include <stdio.h>
int main(void)
{
int size;
do{
system("cls");
printf("Enter the size of the matrix: ");
scanf("%d", &size);
} while( size < 1 );
unsigned arr[size][size];
printf("\nThe result of the matrix:\n\r\n");
size_t i, j, count = 0;
for( i = 0; i < size; i++, count++ ){
for( j = 0; j < size; j++ ){
if( j == count ) arr[i][j] = 1;
else arr[i][j] = 0;
printf(" %u", arr[i][j]);
}
printf("\r\n");
}
printf("\r\n");
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявляется переменная
size, которая используется для хранения размера матрицы. - С помощью цикла
do-whileпользователю предлагается ввести размер матрицы. Цикл продолжается, пока пользователь не введет размер больше 0. - Создается двумерный массив
arrтипаunsignedс размерностьюsize. - Выводится сообщение
The result of the matrix:и пустая матрица. - С помощью двух вложенных циклов
forзаполняется матрица. Главная диагональ матрицы (от левого верхнего угла до правого нижнего угла) заполняется единицами, а все остальные элементы - нулями. - С помощью функции
printfвыводятся значения матрицы, разделенные пробелами. - После вывода матрицы выводится сообщение, сигнализирующее об успешном завершении программы.
- Программа ожидает нажатия клавиши
pauseперед завершением работы. - Возвращается 0, что означает успешное завершение работы программы.