Escreva em linguagem C uma função denominada telhado que receba como parâmetros uma matriz Anxn e um valor inteiro e ímpar (n) que define a dimensão da matriz nxn. A função telhado deve preencher a matriz recebida Anxn como ilustrado nos exemplos abaixo. Elabore a função main() para testar a função telhado. O programa deve ler do dispositivo padrão de entrada (teclado) a dimensão n da matriz A e mostrar o resultado na tela de saída. Exemplos Para n = 5
0 1 2 1 0
1 0 1 0 1
2 1 0 1 2
1 0 1 0 1
0 1 2 1 0
Aqui vai meu código:
#include <stdio.h>
#include <stdlib.h>
void par_impar(int);
void matriz(int);
int main ()
{
int tam;
printf("Digite o tamanho da matriz, sendo este um num impar:\n");
scanf("%d", &tam);
par_impar(tam);
matriz(tam);
}
void par_impar(int tam)
{
if(tam%2==0){printf("Coloque um numero impar.\n");}
}
void matriz(int tam)
{
int i, matriz[tam][tam], cont, cont2=0;
for(cont=0;cont<tam;cont++)
{
for(i=0;i<tam;i++)
{
if(i<tam/2-cont)
{
matriz[cont][i]=i;
printf("matrizi[%d][%d]:%d\n",tam/2,i, matriz[cont][i]=i);
matriz[i][cont]=i;
printf("matrizi[%d][%d]:%d\n", i, cont,matriz[i][cont]=i);
matriz[cont+i][tam-1-i]=i;
printf("matrizi[%d][%d]:%d\n", cont+i,tam-1-i,matriz[cont][tam-i]=i);
matriz[tam-1-i][cont+i]=i;
printf("matrizi[%d][%d]:%d\n\n\n", tam-1-i,cont+i,matriz[tam-i][cont]=i);
continue;
}
else
{
matriz[cont][i]=tam-i;
printf("matrize[%d][%d]:%d\n", cont,i,matriz[cont][i]=tam-i);
matriz[i][cont]=tam-i;
printf("matrize[%d][%d]:%d\n", i,cont,matriz[i][cont]=tam-i);
matriz[cont+i][(tam-1)-i]=tam-i;
printf("matrize[%d][%d]:%d\n", cont+i,(tam-1)-i,matriz[cont][(tam-1)-i]=tam-i);
matriz[tam-1-i][cont+i]=tam-i;
printf("matrize[%d][%d]:%d\n\n\n", tam-1-i,cont+i,matriz[tam-i][cont]=tam-i);
continue;
}
cont2++;
}
}
for(cont=0;cont<tam;cont++)
{
for(i=0;i<tam;i++)
{
printf("%d\t", matriz[cont][i]);
}
putchar('\n');
}
}