Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - EDWINJR

#1
se trata de definir una matriz de 4x4, y almacenar en la matriz parejas de numeros, los numeros se deben generar aleatoriamente de 1 a 8...creo que el error esta en el while, a veces me queda en un bucle infinito y a veces no me quedan todas las parejas completas...
les agradeceria mucho su ayuda...

Código (cpp) [Seleccionar]

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

using namespace std;
void parejas(){
    srand(time(NULL));
    int matriz[4][4],nume,cont=0;
   
    for(int x=0;x<4;x++){//llenando la matriz con numeros aleatorios
    for(int y=0;y<4;y++){   
     nume=1+rand()%8;
     matriz[x][y]=nume; //llenando la matriz con numeros aleatorios
}
}

//comparacion de las parejas de la matriz
for(int x=0;x<4;x++){     //recorriendo cada posicion de la matriz
    for(int y=0;y<4;y++){
            for(int s=0;s<4;s++){
// for para comparar cada posicio con la posicion generada por los 2 for anteriores

             for(int m=0;m<4;m++){    //for para recorrer filas
             if(matriz[x][y]==matriz[s][m]) {
//comparando el valor de la posicion [x][y] con el vlor de cada posicion de la matriz

            cont++;             //contamos cuantas veces el numero es igual
             if(cont>2){                   //si el numero esta repetido mas de dos veces

             while(matriz[s][m]==matriz[x][y]){

//se mantendra este ciclo para asignarle  un valor diferente
                                               
                     nume=1+rand()%8; 
//generamos el nuevo  numero que va a tener la posicion de la matriz               
                      matriz[s][m]=nume;                         
                                               }
           cont=2;     //igualmaos el contador a 2
             
             }//cierre de if que evalua el contador
            }//cierre del if que evalua si los numeros son iguales
               
            }//cierre del for que recorre filas
         
             
            }cont=0;  //cierre de for que recorre columnas
            cout<<matriz[x][y] <<"\t" <<x <<y;
            cout<<endl;//mostramos el numero
            }//cierre del segundo for
           
            }//cierre del primer for
             
      }   //cierre de la funcion   
           
     
int main(){ //funcion principal
    cout<<"numero" <<"\t" <<"posicion" <<endl;
cout<<endl; 
    parejas(); //llamada a la funcion
   
   
   
    system("pause");
    }