Autor
|
Tema: Como se hace una sopa de numeros en c++ (Leído 4,559 veces)
|
shaelb
Desconectado
Mensajes: 10
|
quiero saber como hago para ir comparando los numeros que tengo que buscar en la sopa ... y mostrar la pocicion desde donde inicia hasta donde termina
|
|
|
En línea
|
|
|
|
crack81
Desconectado
Mensajes: 222
|
Especifica un poco mas tu problema porque es muy general y no quiero hacerte una recomendacion que no sea la que estas buscando
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
shaelb
Desconectado
Mensajes: 10
|
mmm osea una matriz nxm con mumeros aleatorios el numero lo digita el usuario y este debe ser buscado dentro de la matriz. Los números solo aparecerán de forma horizontal y vertical. El sentido en el que pueden aparecer puede ser de izquierda a derecha, de derecha a izquierda, de arriba a abajo o de abajo a arriba y se debe mostrar la posicion donde inicia el numero y donde termina....pero no se como hacer eso u.u
|
|
|
En línea
|
|
|
|
daryo
|
um con un array bidimensional
|
|
|
En línea
|
buenas
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Puedes hacerlo utilizando arreglos, para crear un arreglo y asignarle números aleatorios seria así: #define TAM 1O int mxm[TAM][TAM]; //declaramos la matriz for(int i = 0; i < TAM;i++){ //estos dos for sirven para reorrer la matriz for(int j = 0; j < TAM;j++){ mxm[i][j] = rand() % 10; //asignamos numeros aleatorios a la matriz } }
necesitas la librería stdlib para los números aleatorios, luego seria cuestión de sacar los dígitos del numero que quieres buscar, por ejemplo si quisieras buscar el numero 23, primero tendrías que buscar el 3 así if( mxm[i][j] == 3){ //luego para buscarlo el 2 hacia la derecha sería asi if( mxm[i][j+1] == 2 ) //hacia abajo if( mxm[i-1][j] == 2 ) //etc }
Eso podría ser una solución.
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
shaelb
Desconectado
Mensajes: 10
|
tengo este codigo pero las variables final e inicio no me muestran ningun valor cuando lo ejecuto...cual es el error #include <stdio.h> #include<iostream> #include <stdlib.h> //incluye srand() y rand() #include <conio.h> #include <time.h> //incluye time() using namespace std; int main () { rand()%10;//numeros Aleatorios en funcion del tiempo //declarar char r; int filas, columnas, i, j, num, num1, num2, numv,inicioa, iniciob, finala, finalb, parte[100],inicio,final, des; r=='s'; while (r='s') { cout<<"Ingrese numero de filas: "<<endl; cin>>filas; cout<<"Ingrese numero de columnas: "<<endl; cin>>columnas; int srand(time(0));//numeros Aleatorios en funcion del tiempo// se inicializa el random para la seleccion aleatortia de numeros int matriz[filas][columnas]; //ciclo para el llenado de la matriz for(int i=0;i<filas;i++) { for( j=0;j<columnas;j++) { matriz[i][j]= rand()%10+0;//Agrega numero aleatorio a la posicion ij de la matri } } //mostrar matriz cout<<"\n SOPA DE LETRAS \n"<<endl; { for(int i=0;i<filas;i++) { for(j=0;j<columnas;j++) { cout<<"\t"<<matriz[i][j] ; } cout<<"\n\n"; } ; //numero cout<<"Numero que desaa buscar:"<<endl; cin>>numv; j=1; while ((j<=4)) { parte[j] = numv%10; numv = numv/10; j = j+1; } des==0; //encontrar numero for (int i=1 ;i<=filas; i++) { while(des=0) { for (int j=1; j<=columnas; j++) { if (matriz[i][j]==parte[i]) { if(matriz[i][j+1]==parte[i+1]) { if (matriz[i][j+2]==parte[i+2]) { if (matriz[i][j+3]==parte[i+3]) { inicioa==i; iniciob==j; finala==i; finalb==j+3; des==des+1; } } } } } } } for (int i=filas ;i>=1; i--) { while(des=0) { for (int j=columnas; j>=1; j--) { if (matriz[i][j]==parte[i]) { if(matriz[i][j-1]==parte[i+1]) { if (matriz[i][j-2]==parte[i+2]) { if (matriz[i][j-3]==parte[i+3]) { inicioa==i; iniciob==j; finala==i; finalb==j-3; des==des+1; } } } } } } } for (int j=1 ;j<=columnas; j++) { while(des=0) { for (int i=1; i<=filas; i++) { if (matriz[i][j]==parte[j]) { if(matriz[i+1][j]==parte[j+1]) { if (matriz[i+2][j]==parte[j+2]) { if (matriz[i+3][j]==parte[j+3]) { inicioa==i; iniciob==j; finala==i+3; finalb==j; des==des+1; } } } } } } } for (int j=columnas ;j>=1; j--) { while(des=0) { for (int i=filas; i>=1; i--) { if (matriz[i][j]==parte[j]) { if(matriz[i-1][j]==parte[j+1]) { if (matriz[i-2][j]==parte[j+2]) { if (matriz[i-3][j]==parte[j+3]) { inicioa==i; iniciob==j; finala==i-3; finalb==j; des==des+1; } } } } } } } cout<<"Pocicion inicial:", inicioa, iniciob, "\n"; cout<<"posicion final", finala, finalb ,"\n"; cout<<"Desea jugar otra ves?s/n"; cin>>r; } system("pause"); } }
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
para asignar valor a una variable: int var = 2;
para comparar: if( var == 2)
tú lo tienes invertido
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
shaelb
Desconectado
Mensajes: 10
|
ya lo corregi pero sigue igual u.u
|
|
|
En línea
|
|
|
|
0xFer
Desconectado
Mensajes: 400
|
Tienes un bucle infinito aquí: while(des == 0){ //Tienes mas code aquí if (matriz[i][j+3]==parte[i+3]) { inicioa=i; iniciob=j; finala=i; finalb=j+3; des=des+1; } }
des solamente se incrementa cuando se cumple el condicional, o sea que si no se cumple nunca terminará de ejecutar Esto está mal: cout<<"Pocicion inicial:", inicioa, iniciob, "\n";
mejor haber puesto: cout<<"Pocicion inicial: " << inicioa << iniciob << endl;
Lo siguiente no tiene sentido: r='s'; while (r=='s') { }
con poder while(true){ } es más que suficiente. Ahora: rand()%10;
lo pones al aire, no hay nadie que lo cache
|
|
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
shaelb
Desconectado
Mensajes: 10
|
pero acaso no saldra del bucle si la condicion se cumple eso quiere decir que encontro el numero?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como convertir numeros decimales a numeros binario en c++?
Programación C/C++
|
fco_noh
|
3
|
9,271
|
31 Agosto 2010, 07:38 am
por do-while
|
|
|
Como sumo los numeros de un entero hasta que me de "n" numeros (Resuelto)
« 1 2 »
Programación C/C++
|
¡Micronet!
|
18
|
10,950
|
16 Noviembre 2010, 00:26 am
por ¡Micronet!
|
|
|
Ley SOPA como nos jodera?
Dudas Generales
|
Sapote
|
6
|
5,604
|
29 Enero 2012, 20:53 pm
por Software Download
|
|
|
La Unión Europea no se plantea realizar medidas de bloqueo a Internet como SOPA
Noticias
|
wolfbcn
|
1
|
1,905
|
23 Enero 2012, 17:05 pm
por Alien-Z
|
|
|
Incluir mayúsculas y números no hace tu contraseña más segura
Noticias
|
wolfbcn
|
0
|
1,796
|
21 Octubre 2015, 02:07 am
por wolfbcn
|
|