C Program for Matrix Addition using Arrays and Functions
Classified in Computers
Written on in English with a size of 3.8 KB
This document presents two methods for implementing matrix addition in C: a monolithic approach within the main
function and a modular approach utilizing separate functions for input, calculation, and display. Both examples handle 2D arrays up to 100x100 dimensions.
Method 1: Monolithic Implementation in main()
This initial approach places all logic—input handling, calculation, and output—directly within the main
function. The code below has been corrected for proper C syntax, including loop conditions and scanf
format specifiers.
Corrected C Code Snippet 1
#include <stdio.h>
#include <stdlib.h>
void main(void) {
float a[100][100], b[100][100], c[100][100];
int rows, columns, i, j;
printf("Enter number of rows: ");
scanf("%d", &rows);
printf("Enter number of columns: ");
scanf("%d", &columns);
printf("\n--- Enter Matrix 1 ---\n");
// Input Matrix 1
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
printf("Value [%d][%d]: ", i + 1, j + 1);
scanf("%f", &a[i][j]);
}
}
printf("\n--- Enter Matrix 2 ---\n");
// Input Matrix 2
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
printf("Value [%d][%d]: ", i + 1, j + 1);
scanf("%f", &b[i][j]);
}
}
printf("\n--- The Sum Matrix ---\n");
// Calculate and Display Sum
for (i = 0; i < rows; i++) {
for (j = 0; j < columns; j++) {
c[i][j] = a[i][j] + b[i][j];
printf("%6.2f ", c[i][j]);
}
printf("\n");
}
system("PAUSE");
}
Method 2: Modular Implementation using Functions
This method demonstrates better programming practice by separating tasks into reusable functions. This improves code clarity and maintainability.
Function Prototypes and main() Structure
The main
function handles dimension input and calls the specialized functions.
#include <stdio.h>
#include <stdlib.h>
// Function Prototypes
void LeerMatriz(float matrix[][100], int f, int c);
void MostrarMatriz(float matrix[][100], int f, int c);
void SumarMatrices(float array1[][100], float array2[][100], float arr3[][100], int f, int c);
void main(void) {
float a[100][100], b[100][100], c[100][100];
int rows, columns;
printf("Enter number of rows: ");
scanf("%d", &rows);
printf("Enter number of columns: ");
scanf("%d", &columns);
printf("\n--- Enter Matrix 1 ---\n");
LeerMatriz(a, rows, columns);
printf("\n--- Enter Matrix 2 ---\n");
LeerMatriz(b, rows, columns);
SumarMatrices(a, b, c, rows, columns);
printf("\n--- The Sum Matrix ---\n");
MostrarMatriz(c, rows, columns);
system("PAUSE");
}
Function Definitions
Reading Matrix Values (LeerMatriz)
void LeerMatriz(float matrix[][100], int f, int c) {
int i, j;
for (i = 0; i < f; i++) {
for (j = 0; j < c; j++) {
printf("Value [%d][%d]: ", i + 1, j + 1);
scanf("%f", &matrix[i][j]);
}
}
}
Displaying the Result (MostrarMatriz)
void MostrarMatriz(float matrix[][100], int f, int c) {
int i, j;
for (i = 0; i < f; i++) {
for (j = 0; j < c; j++) {
printf("%6.2f ", matrix[i][j]);
}
printf("\n");
}
}
Calculating the Sum (SumarMatrices)
void SumarMatrices(float array1[][100], float array2[][100], float arr3[][100], int f, int c) {
int i, j;
for (i = 0; i < f; i++) {
for (j = 0; j < c; j++) {
arr3[i][j] = array1[i][j] + array2[i][j];
}
}
}