2) Usando funções, criar um programa para calcular e imprimir uma matriz. O programa
deverá ter 5 funções (main, preencher, calcular, imprimir1 e imprimir2). A função main deverá criar
a matriz 2x1x2. A função preencher deverá preencher a matriz, usando passagem de parâmetros
por valor. A função calcular deverá multiplicar todos os elementos da mesma por 2 e usar passagem
de parâmetros por referência. A função imprimir1 deverá imprmir a matriz de forma elegante,
usando passagem de parâmetros por valor. A função imprimir2 deverá imprmir a matriz de forma elegante,
usando passagem de parâmetros por referência.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void imprimir1(int m[2][1][2]);
void imprimir2(int *p);
void preencher(int m[2][1][2]);
void calcular(int *);
void main()
{
int mat[2][1][2];
randomize();
clrscr();
preencher(mat);
imprimir1(mat);
calcular(&mat[0][0][0]);
imprimir2(&mat[0][0][0]);
getch();
}
void preencher(int m[2][1][2])
{
int l,p;
for(l=0;l<2;l++)
{
for(p=0;p<2;p++)
{
m[l][0][p]=rand()%51;
}
}
}
void imprimir1(int m[2][1][2])
{
int l,p;
printf("\n***** passagem por valor *****");
for(p=0;p<2;p++)
{
for(l=0;l<2;l++)
{
printf("\n %d",m[l][0][p]);
}
printf("\n\n");
}
}
void calcular(int *p)
{
for(int i=0;i<4;i++)
{
*p=*p*2;
p++;
}
}
void imprimir2(int *p)
{
int i,j;
printf("\n\n***** passagem por referencia ****");
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
printf("\n %d",*p);
p+=2;
}
printf("\n\n");
p-=3;
}
}
|