Anonymous
#include <stdio.h>
void input(int r, int *ptr1, int *ptr2);
void res(int r, int *ptr3, int *ptr4, int *add);
void display(int r, int *add);
int i, j;
void main()
{
int r, c;
printf("Enter the row and column of matrix:");
scanf("%d%d", &r, &c);
if (r == c)
{
int m1[r][r], m2[r][r];
int *p1, *p2, *add=0;
p1 = &m1[r][r];
p2 = &m2[r][r];
input(r, p1, p2);
res(r, p1, p2, add);
display(r, add);
}
else
printf("The matrix cannot be added");
}
void input(int r, int *ptr1, int *ptr2)
{
printf("Enter elements of matrix 1:");
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
scanf("%d", (*(ptr1 + i) + j));
}
}
printf("Enter elements of matrix 2:");
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
scanf("%d", (*(ptr2 + i) + j));
}
}
}
void res(int r, int *ptr3, int *ptr4, int *add)
{
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
*(*(add + i) + j) = *(*(ptr3 + i) + j) + *(*(ptr4 + i) + j);
}
}
}
void display(int r, int *add)
{
printf("Addition matrix:\n");
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
printf("%d ", *(*(add + i) + j));
}
printf("\n");
}
}
Anonymous
I was asking for simple map<t1,t2> and nothing else. Had I used something else, then I myself would have realised that keys will not be stored in the ascending order.