Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: KiddKeo en 16 Diciembre 2017, 19:03 pm



Título: Ayuda array C
Publicado por: KiddKeo en 16 Diciembre 2017, 19:03 pm
Hola, buenas estoy desarrollando este programa y me he encontrado con el problema de que cuando introduzco Juan Montero no me entra en la condición que tengo hecha, me salta al else y no encuentro el error, cabe resaltar que no puedo utilizar bucles ya que es para una practica de la escuela, si alguien puede ayudarme le agradecería mucho!

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main(void){
  6. float numero1, numero2, numero3, res, res1, res2, res3, base, altura, area;
  7. int porcentaje1, porcentaje2, porcentaje3;
  8. #define juan "Juan"
  9. #define montero "Montero"
  10. char nombre[7];
  11. char apellido[9];
  12. char myArray[11] = "AEIOUaeiou";
  13. char consonantes[3] = "Jj";
  14. printf("Introduce tu nombre: ");
  15. scanf("%s", &nombre);
  16. if (nombre[0] == myArray[0] || nombre[0] == myArray[1] || nombre[0] == myArray[2] || nombre[0] == myArray[3] || nombre[0] == myArray[4] || nombre[0] == myArray[5] || nombre[0] == myArray[6] || nombre[0] == myArray[7] || nombre[0] == myArray[8] || nombre[0] == myArray[9] || nombre[0] == myArray[10] || nombre[0] == myArray[11]){
  17.    printf("Introduce un numero: ");
  18.    scanf("%f", &numero1);
  19.    printf("Introduce el segundo numero: ");
  20.    scanf("%f", &numero2);
  21.    printf("Introduce el tercer numero: ");
  22.    scanf("%f", &numero3);
  23.    printf("Introduce un porcentaje: ");
  24.    scanf("%f", &porcentaje1);
  25.    printf("Introduce el segundo porcentaje: ");
  26.    scanf("%f", &porcentaje2);
  27.    printf("Introduce el tercer porcentaje: ");
  28.    scanf("%f", &porcentaje3);
  29.    res1 = (numero1 * porcentaje1) / 100;
  30.    res2 = (numero2 * porcentaje2) / 100;
  31.    res3 = (numero3 * porcentaje3) / 100;
  32.    res = res1 + res2 + res3;
  33.    printf("La media es: %.2f", res);
  34. }
  35. if(nombre[0] == consonantes[0] || nombre[0] == consonantes[1]){
  36.    system("cls");
  37.    printf("Introduce un apellido: ");
  38.    scanf("%s", &apellido);
  39.    if(nombre == juan && apellido == montero){
  40.        printf("Es el nombre de mi profesor!");
  41.    }else{
  42.        printf("Se ha introducido %s %s", nombre, apellido);
  43.    }
  44. }else{
  45.    printf("Introduce la base: ");
  46.    scanf("%f", base);
  47.    printf("Introduce la altura: ");
  48.    scanf("%f", altura);
  49.    area = (base * altura) / 2;
  50.    printf("El area es: %.2f", area);
  51. }
  52. system("pause>null");
  53. }
  54.  
  55.  


[MOD] Usar la etiqueta GeSHi correcta.


Título: Re: Ayuda array C
Publicado por: CalgaryCorpus en 16 Diciembre 2017, 21:16 pm
Los strings no se comparan usando el operador ==, usa strcmp


Título: Re: Ayuda array C
Publicado por: KiddKeo en 17 Diciembre 2017, 12:15 pm
Hola, el problema es que no hemos estudiado aun strings... ¿Me podrías ayudar a implementarlo en mi código?
Gracias.


Título: Re: Ayuda array C
Publicado por: CalgaryCorpus en 17 Diciembre 2017, 16:04 pm
Los strings en C son arreglos unidimensionales de chars, tal como los tienes en tu programa. Usa strcmp para comparar un "string" (un arreglo unidimensional de chars terminados en 0) con otro.