В двух матрицах на место отрицательных элементов записать 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;
}
Объяснение кода листинга программы
- Объединение двух матриц (A и B) в одну матрицу C.
- Заполнение матрицы C случайными числами от -5 до 5.
- Замена всех отрицательных чисел в матрице C на 1.
- Вывод матрицы C на экран.