30-10-2015 19:26
Hola, tengo una duda con C. Concretamente en este código que he hecho yo y no sé por qué ha de ser as├ì:
Lo que no entiendo es por qué aquí:
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
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
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