В двух матрицах на место отрицательных элементов записать 1 - C (СИ)

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

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

В матрицах B(10,10) и P(15,15) на место отрицательных элементов записать 1, уровне выполнить с помощью функции. Пожалуйста, помогите с решением данной задачи. Программа с вызовом функции:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
#include "C:\Documents and Settings\Admin\Рабочий стол\random.h"
#include "C:\Documents and Settings\Admin\Рабочий стол\zamena.h"
#define N 10
#define M 15
 
int main(void) {
    setlocale(LC_ALL,"RUS");
    int A[N][N], B[M][M];
    printf("Первый массив:\n");
    random(A,N);
    printf("\nВторой массив:\n");
    random(B,M);
    zamena(A,N);
     for(int i=0; i<size; i++) 
    {   for(int j=0; j<size; j++)
            { printf("%3d",A[i][j]);}
        printf("\n");   
    }
     zamena(B,N);
     for(int i=0; i<size; i++) 
    {   for(int j=0; j<size; j++)
            { printf("%3d",B[i][j]);}
        printf("\n");   
    }
    _getch();
    return 0;
}
Файл

random.h

для генерирования случайных чисел:
void random(int vec[][], const int size) {
     for(int i=0; i<size; i++) {
         for(int j=0; j<size;j++)
            { vec[i][j] = 5 - rand()%10;
            printf("%3d", vec[i][j]);}
         printf("\n");
     }
}
Файл

zamena.h

для замены отрицательных элементов на

1

:
int zamena(int vec[][], const int size) {
    for(int i=0; i<size; i++) 
    {   for(int j=0; j<size; j++)
            if(vec[i][j] < 0) 
            {
                vec[i][j]=1; 
                return vec[i][j];
            }
    }
}

Решение задачи: «В двух матрицах на место отрицательных элементов записать 1»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
//-----------------------------------------------------------------------------
void Random(int* array, size_t size)
{
   size_t i;
   for (i = 0; i < size; ++i)
   {
      array[i] = 5 - rand() % 10;
   }
}
//-----------------------------------------------------------------------------
void Print(int* array, size_t col, size_t row)
{
   size_t i, j;
   for (i = 0; i < row; ++i)
   {
      for (j = 0; j < col; ++j)
      {
         printf("%4d", array[i * col + j]);
      }
      printf("\n");
   }
}
//-----------------------------------------------------------------------------
void Replace(int* array, size_t size)
{
   size_t i;
   for (i = 0; i < size; ++i)
   {
      if (array[i] < 0)
      {
         array[i] = 1;
      }
   }
}
//-----------------------------------------------------------------------------
 
#define N 10
#define M 15
 
int main()
{
   int A[N][N], B[M][M];
 
   srand(time(NULL));
 
   printf("A:\n");
   Random((int*)A, N * N);
   Print((int*)A, N, N);
   Replace((int*)A, N * N);
   printf("\n");
   Print((int*)A, N, N);
 
   printf("B:\n");
   Random((int*)B, M * M);
   Print((int*)B, M, M);
   Replace((int*)B, M * M);
   printf("\n");
   Print((int*)B, M, M);
 
   return 0;
}

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

  1. Объединение двух матриц (A и B) в одну матрицу C.
  2. Заполнение матрицы C случайными числами от -5 до 5.
  3. Замена всех отрицательных чисел в матрице C на 1.
  4. Вывод матрицы C на экран.

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


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

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

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