Buenas:
Soy un "super-principiante", asi que para practicar he decidido corregir los errores de este script y modificarlo un pelín para que funcione (aun después de corregir los errores, el programa se ejecuta pero no realiza ninguna operación), aqui te dejo el código final y abajo lo comento:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int operacion, salir=0;
float area, altura, base;
do {
printf("EJERCICIOS DE LOS TRIANGULOS........ \n\n");
printf("============================ \n\n\n");
printf("1) para calcular el area de un triangulo \n");
printf("2) para calcular la base \n");
printf("3) para calcular la altura \n");
printf("4) Salir \n");
scanf("%i", &operacion);
switch (operacion)
{
case 1:
printf("\nAREA DEL TRIANGULO \n");
printf("ingrese la base ........ ");
scanf("%d",&base);
printf("ingrese la altura ........ ");
scanf("%d",&altura);
printf("el area del triangulo es %d ", base*altura/2);
break;
case 2:
printf("\nBASE DE UN TRIANGULO \n");
printf("ingrese el area ........ ");
scanf("%d",&area);
printf("ingrese la altura ........ ");
scanf("%d",&altura);
printf("la base de area del triangulo es %d ",2*area/altura);
break;
case 3:
printf("\nALTURA DE UN TRIANGULO \n");
printf("ingrese el area ........ ");
scanf("%d",&area);
printf("ingrese la base ........ ");
scanf("%d",&base);
printf("la base de area del triangulo es %d ",2*area/base);
break;
case 4:
salir = 1;
break;
default:
printf(" Opcion invalida. \n\n");
}
}while (salir == 0);
system("pause");
return 0;
}
En primer lugar te listo los errores para que los tengas en cuenta:
1- Has puesto:
En vez de:
Esto no tiene ninguna importancia, puede pasarle a cualquiera con las prisas.
2- Has puesto:
En cierto modo es correcto, pero deberás especificarle al usuario que si quiere usar la primera opción debe ingresar "A". Sin embargo hay un error al llamar a esta función, te explico:
Cuando es número se pone :
Pero cuando es una letra debe ir entre comillas:
case 'A': //COMILLAS SIMPLES [''], NO COMILLAS DOBLES [""]
(...)
Hasta ahi los errores comentados por CrisQC.
3- Has llamado mal la variable "operacion", fíjate que has puesto:
scanf("%f",&operacion);
Sin embargo, tú la has declarado como un integer (int), por tanto debes llamarla asi:
scanf("%i",&operacion);
Esos son los errores, sin embargo yo le he añadido una cuarta opción, "salir", de la siguiente manera:
1- Cuando declaras las variables añades una más:
int operacion, salir=0;
float area, altura, base;
Y ahora usamos la función "do while". Se quedaría asi:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int operacion, salir=0;
float area, altura, base;
do {
//TODO LO QUE SUCEDERÁ MIENTRAS SE CUMPLA LA OPCIÓN SEÑALADA EN WHILE
}while (salir == 0); // MIENTRAS SALIR VALGA CERO EL PROGRAMA CONTINUARÁ, Y CUANDO HAGAS UNA OPERACIÓN VOLVERÁ A COMENZAR DESDE EL PRINCIPIO PIDIÉNDOTE QUE SELECCIONES SI QUIERES CALCULAR EL AREA LA BASE O LA ALTURA, SIN EMBARGO CUANDO DEJE DE CUMPLIRSE ESTA OPCIÓN EL PROGRAMA FINALIZARÁ.
system("pause");
return 0;
}
Entonces añadimos un nuevo caso:
(...)
case 3:
printf("\nALTURA DE UN TRIANGULO \n");
printf("ingrese el area ........ ");
scanf("%d",&area);
printf("ingrese la base ........ ");
scanf("%d",&base);
printf("la base de area del triangulo es %d ",2*area/base);
break;
case 4:
salir = 1;
break;
default:
printf(" Opcion invalida. \n\n");
}
}while (salir == 0);
system("pause");
return 0;
}
Si seleccionas 4, "salir" cambiará su valor y ahora valdrá 1, por tanto ya no se cumple la condición de "while" y entonces el programa finaliza.
================================================
Bueno, hasta ahi lo que he conseguido hacer con mis bajos conocimientos de 2 dias leyendo tutoriales, asi que si los expertos pueden echarle un vistazo y decirme si puedo mejorar en algo lo agradecería (como ya dije en otro tema yo uso "cout", "cin", y otras funciones, no sé como se le llamaría a este "estilo" de programación en C++, pero asi aprendo las diversas formas también).
Espero que te sirva kaede. Saludos.