ayuda con arrays bidimensionales en c

Iniciado por re_code, 29 Marzo 2017, 03:57 AM

0 Miembros y 1 Visitante están viendo este tema.

re_code

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

Sebillas

#1
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:

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:

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.