Заполнение диагонали матрицы единицами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Имею следующий фрагмент кода:
    case 3: system("cls");
            {
                for (i = 0; i < n; i++)
                {
 
                    for (j = 0; j < m; j++)
                    {
                        if (i == j)
                        {
                            mass[i][j] = 1;
                        }
                        else mass[i][j] = 0;
                    }
        
                    for (i = 0; i < n; i++)
                    {
 
                        for (j = 0; j < m; j++)
                        {
                            if (i == j)
                            {
                                mass1[i][j] = 1;
                            }
                            else mass1[i][j] = 0;
                        }
 
                        printf("Ваша заполненная матрица 1: ");
                        for (i = 0; i < n; i++)
                        {
                            printf("\n");
                            for (j = 0; j < m; j++)
                            {
                                printf("%d\t", mass[i][j]);
                            }
                        }
                        printf("\n");
                        printf("Ваша заполненная матрица 2: ");
                        for (i = 0; i < n; i++)
                        {
                            printf("\n");
                            for (j = 0; j < m; j++)
                            {
                                printf("%d\t", mass1[i][j]);
                            }
                        }
                        printf("\n"); break;
Однако в результате заполняется лишь первая строка у обоих матриц. А на остальных - "мусор". Прошу помочь разобраться.

Решение задачи: «Заполнение диагонали матрицы единицами»

textual
Листинг программы
printf("Ваша заполненная матрица 1: ");

Объяснение кода листинга программы

В данном коде происходит вывод на экран заполненной матрицы. Список действий можно описать следующим образом:

  1. n - номер строки, в которой будет выводиться матрица. Значение переменной не указано в коде. Предположим, что это число больше или равно 1 и меньше или равно 20.
  2. m - номер столбца, в котором будет выводиться матрица. Значение переменной не указано в коде. Предположим, что это число больше или равно 1 и меньше или равно 20.
  3. s - шаг вывода элементов матрицы. Значение переменной не указано в коде. Предположим, что это число больше или равно 1 и меньше или равно 20.
  4. mat - матрица, заполненная значениями.
  5. i - индекс строки, в которой будет выводиться элемент матрицы. Значение переменной не указано в коде. Предположим, что это число больше или равно 1 и меньше или равно 20.
  6. j - индекс столбца, в котором будет выводиться элемент матрицы. Значение переменной не указано в коде. Предположим, что это число больше или равно 1 и меньше или равно 20.
  7. k - номер элемента матрицы, который будет выводиться на экран. Значение переменной не указано в коде. Предположим, что это число больше или равно 1 и меньше или равно 20.
  8. x - значение элемента матрицы, которое будет выводиться на экран. Значение переменной не указано в коде. Предположим, что это число равно 1. Вывод на экран заполненной матрицы выполняется с помощью функции printf. В качестве формата вывода используется строка Ваша заполненная матрица %d:, где %d - это заполнитель, который будет заменен на значение переменной n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы