Ayuda array C

Iniciado por KiddKeo, 16 Diciembre 2017, 19:03 PM

0 Miembros y 1 Visitante están viendo este tema.

KiddKeo

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.

CalgaryCorpus

Los strings no se comparan usando el operador ==, usa strcmp
Aqui mi perfil en LinkedIn, invitame un cafe aqui

KiddKeo

Hola, el problema es que no hemos estudiado aun strings... ¿Me podrías ayudar a implementarlo en mi código?
Gracias.

CalgaryCorpus

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.
Aqui mi perfil en LinkedIn, invitame un cafe aqui