|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - arian2822
Páginas: [1]
1
« en: Lunes 18 de Octubre de 2010, 03:45 »
buenas, tengo una pregunta, tengo q hacer q al ingresar una palabra menor a 10 caracteres (indicando el fin de la palabra con un punto) el programa busque y muestra un 1 si la encontro y un 0 si no la encontro.. ( en horizontal de izq a derecha, y vertical ( q todavia no esta en el codigo ) de arriba para abajo. el tema es q hay veces q me sale un 1 y no esta la palabra.. debe ser algo no muy complicado, pero no lo encuentro.. si alguien ve el error por ahi, muchas gracias desde ya! #include <iostream> using namespace std;
int main () { const int max = 10; char A[max][max] = {'A', 'S', 'B', 'E', 'D', 'A', 'O', 'H', 'I', 'J', 'A', 'B', 'C', 'D', 'E', 'F', 'H', 'I', 'J', 'O', 'B', 'D', 'I', 'O', 'S', 'F', 'G', 'H', 'I', 'J', 'P', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'S', 'D', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'E', 'I', 'C', 'S', 'U', 'S', 'A', 'N', 'A', 'J', 'B', 'O', 'A', 'L', 'O', 'B', 'B', 'B', 'B', 'B', 'F', 'S', 'B', 'B', 'A', 'I', 'A', 'R', 'B', 'B', 'A', 'R', 'I', 'A', 'N', 'A', 'R', 'I', 'A', 'N', 'N', 'E', 'X', 'I', 'S', 'T', 'E', 'S', 'O', 'O'}; char B[max]; char punto = '.'; int long_palabra = 0; int dim_palabra; int horizontal = 0; int vertical = 0; int inicio=0; int contador = 0;
// muestra la sopa de letras, solo para verificar. for (int i=0; i<max; i++) { for (int j=0; j<max; j++) { cout << A[j] << " "; } cout << endl; } cout << endl;
// ingreso los valores de B, y termina cuando sea mayor a 10, // o cuando se ingresa un punto.
cout << "Ingrese B: " << endl; for(int i=0; i<max; i++) { cin>>B; long_palabra++; if(B==punto) break; if(i==9) { B[i+1]=punto; break; } }
// crea nuevo vector con la palabra, sin el punto. dim_palabra=long_palabra-1; char P[dim_palabra];
for(int i=0; i<dim_palabra; i++) P=B; // muestra palabra escrita, solo para verificar. for (int k=0; k<dim_palabra; k++) cout << P[k];
// busca horizontal int pos = 0; for(int k=0; k<max; k++) { for (int n=0; n<max; n++) { if (A[k][n] == P[pos]) { if (pos == 0) { inicio = n; horizontal++; pos++; } else if (n = inicio+1) { horizontal++; pos++; } else pos = 0; } if (horizontal == dim_palabra) { contador++; } } }
cout << endl << endl << horizontal << endl << endl; if (horizontal == dim_palabra) { cout << endl << 1; } else { cout << endl << 0; } cin.get(); cin.get(); return 0; }
Páginas: [1]
|
|
|