[Hilo Oficial] Esto también es otro arte...el ARTE de programar
Cita
Hola, tengo una duda con C. Concretamente en este código que he hecho yo y no sé por qué ha de ser as├ì:

Código:
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main() {
    
    char palabras[5][2][80] = {
        {"Hola", "Hello"},
        {"Adios", "Bye"},
        {"Seguro", "Sure"},
        {"Bien", "Well"},
        {"Palabra", "Word"}
    
    };
    
    
    char palabraSolicitada[80] = "";
    
    printf("Introduce una palabra\n");
    gets(palabraSolicitada);
    
    
    int i;
    int j;
    
    for (i = 0; i <= 5; i++) {
        
        for (j = 0; j <=2; j++) {
            
            if (strcmp(palabras[i][0], palabraSolicitada) == 0) {
                
                system("cls");
                printf("La palabra introducida es %s y su traduccion es: %s", palabraSolicitada, palabras[i][j + 1]);
                break;
            }
            
            else if(strcmp(palabras[i][1], palabraSolicitada) == 0) {
                
                system("cls");
                printf("La palabra introducida es %s y su traduccion es: %s", palabraSolicitada, palabras[i][j - 1]);
                break;
            }
            
        }
    }
    
    getch();
    return 0;
    
}


Lo que no entiendo es por qué aquí:

Código:
if (strcmp(palabras[i][0], palabraSolicitada) == 0) {
                
                system("cls");
                printf("La palabra introducida es %s y su traduccion es: %s", palabraSolicitada, palabras[i][j + 1]);
                break;
            }
            
            else if(strcmp(palabras[i][1], palabraSolicitada) == 0) {
                
                system("cls");
                printf("La palabra introducida es %s y su traduccion es: %s", palabraSolicitada, palabras[i][j - 1]);
                break;
            }

Si el primer índice de la j vale 0 y le digo que +1, es decir, el 1. Me lo coge bien, pero el segundo, que es el índice de la j es 1 y le digo -1 no me lo coge. Tengo que dejarlo como

Código:
printf("La palabra introducida es %s y su traduccion es: %s", palabraSolicitada, palabras[i][j]);

Con eso me estaría refiriendo al índice 1, por lo que me debería devolver el mismo, ¿no?
Vamos, si hago lo mismo con el primer if me muestra el mismo roto2


Mensajes en este tema
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 25-10-2012 15:34
Re:Esto también es otro arte...el ARTE de programar - por Corona Radiata - 27-10-2012 03:00
RE: Esto también es otro arte...el ARTE de programar - por Jase - 30-10-2015 19:26
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 24-10-2012 16:47

Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)