Написать программу вычитания двух матриц размерности M⨯N - C (СИ)
Формулировка задачи:
Погуглив я сделал программку вычитания 2х матриц размером 2х2, но не могу понять как сделать чтоб размер у матриц был задаваемый.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 3
#define M 2
int **Add(int **a, int **b)
{
int i,j;
int **tmp = (int**)malloc(sizeof(int*) * N);
for(i = 0; i < N; i++)
{
tmp[i] = (int*)malloc(sizeof(int) * M);
for(j = 0; j < M; j++)
tmp[i][j] = a[i][j] - b[i][j];
}
return tmp;
}
int main()
{
int **a = (int**)malloc(sizeof(int*) * N);
int **b = (int**)malloc(sizeof(int*) * N);
int i,j;
for(i = 0; i < N; i++)
{
a[i] = (int*)malloc(sizeof(int) * M);
for(j = 0; j < M; j++)
{
printf("Input please A[%d][%d]: ", i, j);
scanf("%d",&a[i][j]);
}
}
for(i = 0; i < N; i++)
{
b[i] = (int*)malloc(sizeof(int) * M);
for(j = 0; j < M; j++)
{
printf("Input please B[%d][%d]: ", i, j);
scanf("%d",&b[i][j]);
}
}
printf("\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
printf("%5d",b[i][j]);
printf("\n");
}
int **ab = Add(a,b);
printf("\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
printf("%5d",ab[i][j]);
printf("\n");
}
getch();
return 0;
}Решение задачи: «Написать программу вычитания двух матриц размерности M⨯N»
textual
Листинг программы
printf("Введите N строк: ");
scanf("%d", &N);
printf("Введите M столбцов: ");
scanf("%d", &M);
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод количества строк и столбцов для матрицы.
- Переменная N используется для хранения количества строк.
- Переменная M используется для хранения количества столбцов.