es cuestion de encontrar la relacion que tienen los numeros consecutivos de la matriz unos con otros, si es que existe dicha relacion...... en tu primer ejemplo la relacion es que en la diagonal principal solamente hay 1 y tanto a la derecha, arriba, izquierda y abajo de estos unos se va incrementando en 1 el numero que sigue... asi que un posible codigo para el primer ejemplo seria:
Código C:
Ver original/* 19. Escribir un programa que almacene en una matriz de NxN los valores:
1 2 3 4 5 6
2 1 2 3 4 5
3 2 1 2 3 4
4 3 2 1 2 3
5 4 3 2 1 2
6 5 4 3 2 1 */
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
int i, j, M[6][6];
const int tamanio= 6;
for(i=tamanio-1; i>=0;i--)
{ M[i][i]=1;
for(j=i-1;j>=0;j--)
{
M[i][j] = M[i][j+1]+1;
M[j][i]= M[j+1][i]+1;
}
}
//se imprime la matriz en pantalla
for (int i=0;i<tamanio;i++){
for (int j=0; j<tamanio; j++)
cout<< M[i][j]<<" ";
cout<<endl;
}
return 0;
}
para mostrar la matriz usé el
cout porque no se usar el
printf , pero es solamente para mostrar la matriz.
este ejemplo te va a servir para cualquier matriz
cuadrada, solamente basta con modificar la constante
tamanio con el valor del tamaño de la matriz.
para adaptarlo a C tendrias que borrar el
include <iostream> y cambiar las lineas de los
cout por los
printf correspondientes.
saludos