Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2014, 02:52
Estdar123455
 
Fecha de Ingreso: noviembre-2014
Mensajes: 5
Antigüedad: 9 años, 5 meses
Puntos: 0
Exclamación Reimprimir Matriz bidimensional modificada

Hola buenas, lo que pasa es que tengo esta tarea final, y me dan una matriz bidimensional con letras, me asignan las siguientes palabras

Palabras: RATONES, PILON, HILAR, ZAPATO, ANCIANO, TUERCA, CAMPO

Las cuales estan dentro de la matriz lo que yo debo hacer es encontrarlas y cambiarlas a minusculas ya tengo la idea planteada, en el codigo que tengo empece como si no se supiera en que direccion estaba la primer palabra para que buscara y fuera descartando(creo que borrare eso, ustedes que dicen?) pero ya luego hice que se buscara en la direccion que yo ya sé, se encuentran las palabras. (esta opcion es mejor no? me deja mas corto el programa)

Lo que pasa es que ya no se como mandar a reimprimir la matriz ya cambiada, ya tengo en el caso de que se cruzen que se considere que si ya estan en minus que se deje como esta. Por favor espero me ayuden y me iluminen con su sabiduria

Código:
#include <iostream>
#include<stdio.h>
#include<stdlib.h>

char matriz[9][10];

int main()
{
    char letra[12];
    int k,R;
    char matriz[9][10]=
    {
        {'E','R','U','Q','R','I','M','M','Z','T'},
        {'O','A','E','Q','I','T','Z','T','Q','M'},
        {'P','T','U','E','R','C','A','Q','O','L'},
        {'Q','O','M','V','V','O','P','M','A','C'},
        {'O','N','A','I','C','N','A','M','G','E'},
        {'M','E','Y','B','O','T','T','Q','I','N'},
        {'N','S','Q','L','R','E','O','M','D','T'},
        {'E','H','I','L','A','R','J','J','N','O'},
        {'O','P','O','C','L','M','U','M','I','C'}
    };
    for(int i=0; i<9; i++)//imprime matriz sopa de letras
        {
            for(int j=0; j<10; j++)
            {
            printf(" %c\t", matriz[i][j]);
            printf("\n");
            }
            
        }

        for(int p=0; p<9; p++)
        {
            for(int q=0; q<10; q++)
            {
                if(matriz[p][q]='R')
                {
                    if (q<4)// buscar hacia la derecha
                    {
                       letra[p*10+q]=matriz[p][q];
                       letra[R]=letra[p*10+q];
                       if(letra[R+1]='A' && letra[R+2]='T' && letra[R+3]='O' && letra[R+4]='N' && letra[R+5]='E' && letra[R+6]='S')
                       {
                           for(int k=R; k<R+7; k++)
                           {
                               if(letra[k]>=65 && letra[k]<=90)
                                letra[k]=letra[k]+32;
                                else letra[k]=letra[k];
                           }
                       }
                    }
                    else
                        if(p<3 && q<4)//esquina inferior derecha
                        {
                            letra[p*10+q]=matriz[p][q];
                            letra[R]=letra[p*10+q];
                            if(letra[R+11]='A' && letra[R+22]='T' && letra[R+33]='O' && letra[R+44]='N' && letra[R+55]='E' && letra[R+66]='S')
                            {
                                for(int k=R; k<R+77; k=k+11)
                                    {
                                        if(letra[k]>=65 && letra[k]<=90)
                                        letra[k]=letra[k]+32;
                                        else letra[k]=letra[k];
                                    }
                            }
                        }
                else
                    if(p<3)//hacia abajo
                    {
                        letra[p*10+q]=matriz[p][q];
                        letra[R]=letra[p*10+q];
                        if(letra[R+10]='A' && letra[R+20]='T' || letra[R+20]='t' && letra[R+30]='O' && letra[R+40]='N' || letra[R+40)='n' && letra[R+50]='E' && letra[R+60]='S')
                       {
                           for(int k=R; k<R+70; k=k+10)
                           {
                               if(letra[k]>=65 && letra[k]<=90)
                                letra[k]=letra[k]+32;
                               else letra[k]=letra[k];
                           }
                       }
                    }
                else
                    if(p<3 && q>5)//hacia esquina inferior izquierda
                    {
                        letra[p*10+q]=matriz[p][q];
                        letra[R]=letra[p*10+q];
                        if(letra[R+9]='A' && letra[R+18]='T' && letra[R+27]='O' && letra[R+36]='N' && letra[R+45]='E' && letra[R+54]='S')
                       {
                           for(int k=R; k<R+63; k=k+9)
                           {
                               if(letra[k]>=65 && letra[k]<=90)
                                letra[k]=letra[k]+32;
                               else letra[k]=letra[k];
                           }
                       }
                    }
                 else
                    if(q>5)//hacia izquierda
                    {
                        letra[p*10+q]=matriz[p][q];
                        letra[R]=letra[p*10+q];
                        if(letra[R-1]='A' && letra[R-2]='T' && letra[R-3]='O' && letra[R-4]='N' && letra[R-5]='E' && letra[R-6]='S')
                       {
                           for(int k=R; k<R-7; k--)
                           {
                               if(letra[k]>=65 && letra[k]<=90)
                                letra[k]=letra[k]+32;
                               else letra[k]=letra[k];
                           }
                       }
                    }
                else//hacia esquina superior izquierda
                    if(p>5 && q>5)
                    {
                        letra[p*10+q]=matriz[p][q];
                        letra[R]=letra[p*10+q];
                        if(letra[R-11]='A' && letra[R-22]='T' && letra[R-33]='O' && letra[R-44]='N' && letra[R-55]='E' && letra[R-66]='S')
                       {
                           for(int k=R; k<R-77; k=k-11)
                           {
                               if(letra[k]>=65 && letra[k]<=90)
                                letra[k]=letra[k]+32;
                               else letra[k]=letra[k];
                           }
                       }
                    }
                
                }
            }
        }
            for(int t=0; t<9; t++)
            {
                for(int u=0; u<10; u++)
                {
                    if(matriz[t][u]='P')
                    {
                        if(t>3 && u<6)// hacia esquina superior derecha
                            {
                                letra[t*10+u]=matriz[t][u];
                                letra[P]=letra[t*10+u];
                                if(letra[P-9]='I' || letra[P-9]='i' && letra[P-18]='L' && letra[P-27]='O' && letra[P-36]='N' || letra[P-36]='n')
                                    {
                                        for(int m=P; m<P-45; m=m-9)
                                        {
                                            if(letra[m]>=65 && letra[m]<=90)
                                            letra[m]=letra[m]+32;
                                            else letra[m]=letra[m];
                                        }
                                    }       
                            }
                        else
                            if (u<6)// buscar hacia la derecha
                            {
                                letra[t*10+u]=matriz[t][u];
                                letra[P]=letra[t*10+u];
                                if(letra[P+1]='I' && letra[P+2]='L' && letra[P+3]='O' && letra[P+4]='N')
                                    {
lespego la continuacion del codigo