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.
Los strings no se comparan usando el operador ==, usa strcmp
Hola, el problema es que no hemos estudiado aun strings... ¿Me podrías ayudar a implementarlo en mi código?
Gracias.
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.