Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: re_code en 29 Marzo 2017, 03:57 am



Título: ayuda con arrays bidimensionales en c
Publicado por: re_code en 29 Marzo 2017, 03:57 am
quiero saber como puedo colocar una cierta cantidad de números en una matriz NxN llena de 0.

ejemplo: una matriz 10 * 10 y que tengan al menos cinco 1 de manera aleatoria.

muy agradecido a la ayuda


Título: Re: ayuda con arrays bidimensionales en c
Publicado por: Sebillas en 29 Marzo 2017, 05:32 am
Hola re_code, te explicare las matrices bidimensionales en el lenguaje C, estas constan de una fila y una columna matriz[fila][columna]
para poder moverse entre ambas se utilizan dos for anidados como te muestro en el siguiente ejemplo:
Código:
int cadena[n][m];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
                }
        }

Si te das cuenta, veras que el primer for sirve para moverte entre las filas, el segundo entre las columnas, entonces por ejemplo empieza en cadena[0][0,1,2,3....m] entonces para lo que requieres por ejemplo pon una condición para que si se encuentra en cierta poscicion de tu gusto imprima un cero, de lo contrario un 1. Ejemplo:
Código:
	for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(i==j)
{
cadena[i][j]=1;
}
else
{
cadena[i][j]=0;
}
}
}

Este pequeño programa lo que hara es poner un 1 en diagonal a lo largo de toda la matriz (es decir cuando fila y columna sean iguales) si quieres que sea aleatorio el 1, lo que se me ocurre es usar estas instrucciones para generar un numero aleatorio:
 1)    Asignación de valor aleatorio a una variable.
Librerias a considerar: #include <time.h> , #include <stdlib.h>
srand (time(NULL));       [Instrucción que inicializa el generador de números aleatorios]

int variable = rand();     [Obtención de un número aleatorio entero entre cero y un valor muy grande]

Citar
(Fuente de información de numeros aleatorios:http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=917:generar-numeros-o-secuencias-aleatorios-en-c-intervalos-srand-y-rand-time-null-randmax-cu00525f&catid=82:curso-basico-programacion-lenguaje-c-desde-cero&Itemid=210)

Y eso lo adecuas en el if del ejemplo anterior para colocar el 1, ya nada mas para imprimir, es seguir el mismo esquema de los dos for.
Espero haberte ayudado saludos.