Test Foro de elhacker.net SMF 2.1

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!


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void){
float numero1, numero2, numero3, res, res1, res2, res3, base, altura, area;
int porcentaje1, porcentaje2, porcentaje3;
#define juan "Juan"
#define montero "Montero"
char nombre[7];
char apellido[9];
char myArray[11] = "AEIOUaeiou";
char consonantes[3] = "Jj";
printf("Introduce tu nombre: ");
scanf("%s", &nombre);
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]){
   printf("Introduce un numero: ");
   scanf("%f", &numero1);
   printf("Introduce el segundo numero: ");
   scanf("%f", &numero2);
   printf("Introduce el tercer numero: ");
   scanf("%f", &numero3);
   printf("Introduce un porcentaje: ");
   scanf("%f", &porcentaje1);
   printf("Introduce el segundo porcentaje: ");
   scanf("%f", &porcentaje2);
   printf("Introduce el tercer porcentaje: ");
   scanf("%f", &porcentaje3);
   res1 = (numero1 * porcentaje1) / 100;
   res2 = (numero2 * porcentaje2) / 100;
   res3 = (numero3 * porcentaje3) / 100;
   res = res1 + res2 + res3;
   printf("La media es: %.2f", res);
}
if(nombre[0] == consonantes[0] || nombre[0] == consonantes[1]){
   system("cls");
   printf("Introduce un apellido: ");
   scanf("%s", &apellido);
   if(nombre == juan && apellido == montero){
       printf("Es el nombre de mi profesor!");
   }else{
       printf("Se ha introducido %s %s", nombre, apellido);
   }
}else{
   printf("Introduce la base: ");
   scanf("%f", base);
   printf("Introduce la altura: ");
   scanf("%f", altura);
   area = (base * altura) / 2;
   printf("El area es: %.2f", area);
}
system("pause>null");
}




[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.