Исправить ошибку - не выводится столбец матрицы - C (СИ)

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

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

// Массив.cpp: определяет точку входа для консольного приложения.
//
 
#include <stdio.h>
#include <stdlib.h>
#include "stdafx.h"
#include <clocale>
 
#define SIZE 5
 
int main(void)
{setlocale(LC_ALL,"Russia");
    setlocale(LC_ALL,"rus");
 
    int massiv[SIZE][SIZE];
    int i, j, row, col;
    for (i = 0; i < SIZE; i++)
        for (j = 0; j < SIZE; j++)
        {
            printf("Заполните массив");
            scanf("%d", &massiv[i][j]);
        }
    printf("Нужная строка ");
    scanf("%d", &row);
    if (row >= 0 && row < SIZE)
        for (i = 0; i < SIZE; i++)
            printf("%d ", massiv[row][i]);
    printf("\n Нужный столбец ");
    scanf("%d", &col);
    if (col >= 0 && col < SIZE)
        for (i = 0; i < SIZE; i++)
            printf("%d ", massiv[i][col]);
    if (col >= 0 && col < SIZE && row >= 0 && row < SIZE)
        printf("\nCell matrix[%d][%d] = %d\n", row, col, massiv[row][col]);
    return 0;
}
строку нужную выводит, не выводит столбец ,почему?

Решение задачи: «Исправить ошибку - не выводится столбец матрицы»

textual
Листинг программы
    int massiv[SIZE][SIZE];
    int i, j, row, col;
 
    /* Заполнение матрицы */
    for (i = 0; i < SIZE; i++) {
        for (j = 0; j < SIZE; j++) {
            massiv[i][j] = get_rand((i+1) * (j+1));
        }
    }
 
    /* Вывод матрицы */
    for (i = 0; i < SIZE; ++i) {
        for (j = 0; j < SIZE; ++j) {
            printf("%-5d", massiv[i][j]);
        }
        printf("\n");
    }
 
    printf("Нужная строка ");
    scanf("%d", &row);
    --row;
    if (row >= 0 && row < SIZE)
        for (i = 0; i < SIZE; i++)
            printf("%d ", massiv[row][i]);
 
    printf("\n Нужный столбец ");
    scanf("%d", &col);
    --col;
    if (col >= 0 && col < SIZE)
        for (i = 0; i < SIZE; i++)
            printf("%d ", massiv[i][col]);
    if (col >= 0 && col < SIZE && row >= 0 && row < SIZE)
        printf("\nCell matrix[%d][%d] = %d\n", row, col, massiv[row][col]);
    return 0;

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

  1. Объявляется массив massiv размером SIZE x SIZE и переменные i, j, row, col
  2. С помощью двух вложенных циклов массив заполняется случайными числами
  3. С помощью двух вложенных циклов и функции printf матрица выводится на экран
  4. С помощью scanf считывается номер строки, затем с помощью printf выводятся элементы этой строки
  5. С помощью scanf считывается номер столбца, затем с помощью printf выводятся элементы этого столбца
  6. Если номер строки и номер столбца корректны, то выводится значение элемента матрицы по этому номеру
  7. Код завершается, возвращая 0

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


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

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

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