Составить программу на с++ одной программой, в которой 1) организовать ввод квадратной матрицы размера nxn из целых чисел; 2) возвести в квадрат все отрицательные элементы матрицы; 3) переставить нулевые элементы первой строки матрицы в ее начало; 4) организовать ввод и вывод матрицы в виде отдельных функций.

алекс922 алекс922    1   30.09.2019 15:30    0

Ответы
samorukov2005 samorukov2005  09.10.2020 05:44

#include <stdio.h>


/* организовать ввод и вывод матрицы в виде отдельных функций. */


void scanMatrix(unsigned n, int matrix[n][n])

{

   printf("Enter matrix elements, separated by spaces:\n");


   for (unsigned i = 0; i < n; i++)

   {

       for (unsigned j = 0; j < n; j++)

       {

           scanf("%d", &matrix[i][j]);

       }

   }

}


void printMatrix(unsigned n, int matrix[n][n])

{

   printf("These are matrix elements:\n");


   for (unsigned i = 0; i < n; i++)

   {

       for (unsigned j = 0; j < n; j++)

       {

           printf("%d ", matrix[i][j]);

       }

       printf("\n");

   }

}


int main()

{

   unsigned n;


   /* организовать ввод квадратной матрицы размера nxn из целых чисел; */

   printf("Enter matrix dimension: ");

   scanf("%u", &n);


   int matrix[n][n];

   scanMatrix(n, matrix);


   /* возвести в квадрат все отрицательные элементы матрицы; */

   for (unsigned i = 0; i < n; i++)

   {

       for (unsigned j = 0; j < n; j++)

       {

           if (matrix[i][j] < 0)

           {

               matrix[i][j] *= matrix[i][j];

           }

       }

   }


   /* переставить нулевые элементы первой строки матрицы в ее начало; */

   unsigned lastReplacableIndex = 0;

   for (unsigned i = 1; i < n; i++)

   {

       if (matrix[0][i] == 0)

       {

           int temp = matrix[0][lastReplacableIndex];

           matrix[0][lastReplacableIndex] = matrix[0][i];

           matrix[0][i] = temp;

           lastReplacableIndex++;

       }

   }


   printMatrix(n, matrix);

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика