elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con programa en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con programa en C++  (Leído 1,913 veces)
venombrain

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con programa en C++
« en: 24 Junio 2014, 07:30 am »

Buenas, quisiera saber si me pudiesen ayudar con lo siguiente, resulta que estoy realizando un código de c++ el cual tiene un Menu y dependiendo de la elección realiza una solución, el caso es que lo que llevo escrito lo realiza bien pero al momento de insertar el siguiente código no lo ejecuta correctamente, les dejo el código a continuación.

Código:
 char letra;
    printf("Ingrese una letra: ");
scanf( "%d", &letra);
      if(letra=='a'||letra=='e'||letra=='i'||letra=='o'||letra=='u'||letra=='A'||letra=='E'||letra=='I'||letra=='O'||letra=='U') {
  printf("La letra %c es una vocal\n", letra); }
      else  {
  printf("La letra %c no es una vocal\n", letra); }
  getch();
  system("cls");

Este funciona correctamente, pero en el siguiente código no realiza su función correctamente (Detectar si la letra ingresada es una vocal o no)

Código:
int opcion,opcion1,opcion2,n,contador,b,mayor;
float var1,var2,resultado;


opcion=0;

while (opcion!=6)

{
printf("Menu\n\n");
        printf("1.- Calculadora\n");
        printf("2.- Conversor de distancias\n");
printf("3.- Comparador de 3 enteros\n");
printf("4.- Reconocedor de vocales\n");
printf("5.- Suma con IVA\n");
        printf("6.- Salir\n\n");
        printf("Ingrese Opcion: ");

scanf("%d",&opcion);
system("cls");

switch (opcion) {
       
case 1: // Opción 1 menu principal
       
printf("Ingrese opcion a calcular\n\n");
        printf("1.- Area de un triangulo\n");
        printf("2.- Area de un circulo\n");
printf("3.- Area de un rectangulo\n");
printf("4.- U otro numero Salir\n\n");
printf("Ingrese Opcion: ");
scanf("%d", &opcion1);
system("cls");

switch (opcion1) {
case 1:
           printf("Ingrese la base del triangulo: ");
           scanf("%f",&var1);
           printf("Ingrese la altura del triangulo: ");             
           scanf("%f",&var2);
           resultado=(var1*var2)/2;
           printf("El area del triangulo es de: %.2f unidades cuadradas",resultado);
   getch();
   system("cls");
   break;

case 2:
           printf("Ingrese el radio del circulo: ");
           scanf("%f",&var1);
           resultado=(var1*var1)*3.14;
           printf("El area del circulo es de: %.2f unidades cuadradas",resultado);
   getch();
   system("cls");
   break;

  case 3:
           printf("Ingrese el largo del rectangulo: ");
           scanf("%f",&var1);
           printf("Ingrese el ancho del rectangulo: ");             
           scanf("%f",&var2);
           resultado=var1*var2;
           printf("El area del rectangulo es de: %.2f unidades cuadradas",resultado);
   getch();
   system("cls");
   break;
   }

        break;

case 2: // Opción 2 menu principal

printf("Ingrese opcion a convertir\n\n");
        printf("1.- De Kilometros a centimetros\n");
        printf("2.- De Millas a Pies\n");
printf("3.- De Yardas a Pulgadas\n");
printf("4.- U otro numero Salir\n\n");
printf("Ingrese Opcion: ");
scanf("%d", &opcion2);
system("cls");


switch (opcion2)

{
case 1:
   printf("Ingrese los kilometros a convertir en centimetros: ");
   scanf("%f",&var1);
   var2=var1;
           resultado= var1 * 100000;
   printf("%.2f", var2);
           printf(" Kilometros equivalen a: %.2f centimetros",resultado);
   getch();
   system("cls");
   break;
   
case 2:
   printf("Ingrese las millas a convertir en pies: ");
   scanf("%f",&var1);
   var2=var1;
           resultado= var1 * 5280;
   printf("%.2f", var2);
           printf(" Millas equivalen a: %.2f Pies",resultado);
   getch();
   system("cls");
   break;

case 3:
   printf("Ingrese las yardas a convertir en pulgadas: ");
   scanf("%f",&var1);
   var2=var1;
           resultado= var1 * 36;
   printf("%.2f", var2);
           printf(" Yardas equivalen a: %.2f Pulgadas",resultado);
   getch();
   system("cls");
   break;



}
break;

case 3: // Opción 3 menu principal
         b=0;
         contador=0;
         while(contador<3)
         {
         printf("Ingrese numero a comparar:");
         scanf("%d",&n);
         system("cls");
         if(b==0||n>mayor)
         {
         mayor=n;
         b=1;
         }
         contador=contador+1;
         }
         printf("El mayor de los numeros ingresados es: %d",mayor);
           if (mayor%2==0)
           printf(" y es un numero par");
   else
       printf(" y es un numero impar");
           getch();
   system("cls");
   break;

case 4:

    char letra;
    printf("Ingrese una letra: ");
scanf( "%d", &letra);
      if(letra=='a'||letra=='e'||letra=='i'||letra=='o'||letra=='u'||letra=='A'||letra=='E'||letra=='I'||letra=='O'||letra=='U') {
  printf("La letra %c es una vocal\n", letra); }
      else  {
  printf("La letra %c no es una vocal\n", letra); }
  getch();
  system("cls");
break;
}
}

system("pause");


return 0;
}


Si fueran tan amables de decirme en lo que estoy fallando les estaría muy agradecido, saludos y muchas gracias de antemano.


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Ayuda con programa en C++
« Respuesta #1 en: 24 Junio 2014, 10:09 am »

Imagino que estás empezando a meterte en temas de programación. Te comento algunas guías que deberías usar:

* Divide el código en funciones sencillas. Un while con un switch dentro, que contiene ifs no es algo sencillo de manejar.

* Si usas C++ y estás aprendiendo, usa elmentos propios de C++, en caso contrario, programa en C. Es más fácil cogerle el punto a las capacidades de cada lenguaje y te evitará quebraderos de cabeza. En este caso, deberías usar 'cin' en vez de 'scanf' y 'cout' en vez de 'printf':

Código
  1. #include <iostream>
  2.  
  3. int main( )
  4. {
  5.  int numero;
  6.  cout << "Introduce un número: ";
  7.  cin >> numero;
  8.  cout << "El número introducido es: " << numero << endl;
  9. }

* Para las variables, elige nombres con significado... opcion, opcion1, opcion2, var1, var2 no parecen nombres muy significativos, intenta evitarlos.

* Las variables inicialízalas siempre. Si no inicializas un puntero puede que al depurar no seas capaz de ver si el puntero accede a posiciones de memoria válidas.

Código
  1. int opcion = 0;
  2. int opcion1 = 0;
  3. int opcion2 = 0;
  4. // ...

* Intenta declarar las variables cuando vayas a usarlas. Esto te evitará problemas al codificar los programas. Reutilizar variables a veces es una fuente muy tonta de errores difíciles de encontrar.

* Evita el uso de getch y de system. Puedes ver algunos motivos en este otro hilo

* En tu caso, estás intentando leer un carácter, lo normal es que utilizases %c para leerlo en vez de %d (%d es para enteros, %c para caracteres)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 3,191 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,919 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
ayuda programa!!
Programación C/C++
rodrigo_103 4 4,449 Último mensaje 16 Septiembre 2012, 21:58 pm
por rodrigo_103
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 10,419 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
Noxware 0 3,096 Último mensaje 16 Junio 2014, 18:13 pm
por Noxware
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines