Autor
|
Tema: Ayuda programa en C calculo areas (Leído 3,219 veces)
|
droken26
Desconectado
Mensajes: 18
|
Buenas noches, soy nuevo en la programación en C y estoy haciendo un ejercicio, se trata de calcular el area de un cuadrado, rectángulo, triángulo, etc. Esto lo tengo controlado a través de un menu que da opción de elegir mediante un numero el area que desee calcular, el problema que tengo es que entre los valores introducidos no podrá ser 0 o valor negativo, en caso de introducir alguno de estos datos el programa mostrara un mensaje de error en pantalla y finalizara. De que forma puedo poner estos argumentos? Os dejo el código del programa. Muchas Gracias #include <stdio.h> int a; float cua, rec, tri, cir, rom; float b,c,d,e,f,g,h,i; float pi=3.141592; int main() { printf("Seleccione la opcion que desee calcular \n \n"); if(a==1){ printf("Ingrese el lado del cuadrado: \n"); cua=(float) b*b; printf("El area del cuadrado es: %f \n", cua ); } else if (a==2){ printf("Ingrese la base y la altura del rectangulo: \n"); rec=(float) c*d; printf("El area del rectangulo es: %f \n", rec ); } else if (a==3){ printf("Ingrese la base y la altura del triangulo: \n"); tri=(float) e*f/2.0; printf("El area del triangulo es: %f \n", tri ); } else if(a==4){ printf("Ingrese el radio del circulo: \n"); cir=(float) pi*g*g; printf("El radio del circulo es: %f \n", cir ); } else if(a==5){ printf("Ingrese la Diagonal mayor y la Diagonal Menor;\n"); rom=(float) h*i/2.0; printf("El area del rombo es: %f \n", rom ); } return 0; }
Mod: Cuando publiques codigo, usa las etiquetas GeSHi
|
|
« Última modificación: 5 Febrero 2015, 22:20 pm por engel lex »
|
En línea
|
|
|
|
engel lex
|
luego del scanf de lectura de los datos usa un if para asegurarte que no sean menor que 0, para mostrar el error puedes hacerlo con una funcion, declara una funcion de error y la usas para mostrarlo...
si no, puedes usar switch-case en lugar de if y para saltar al error usas un break prematuro
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
droken26
Desconectado
Mensajes: 18
|
Gracias engel lex, he seguido tus indicaciones lo que he realizado es:
if ((c<=0) && (d<=0)) printf("¡¡¡Error!!!, Introduzca un numero superior...\n"); else if ((c>0) && (d>0)) printf("El area del rectangulo es %f \n", (float) c*d);
Pero hay un fallo que no se como resolver, si ingresamos el primer numero y ponemos 0 y el segundo ponemos 5, no sale el aviso del error, es decir deberia haber una condicion de forma que si pones el 0 y despues e 5 tambien te salga el mensaje de error. De que forma podria solucionar el pequeño problema.
Gracias.
|
|
|
En línea
|
|
|
|
T. Collins
Desconectado
Mensajes: 206
|
Con && (AND) solo se cumple la condición si los dos casos son TRUE, con || (OR) basta que uno sea TRUE.
|
|
|
En línea
|
|
|
|
droken26
Desconectado
Mensajes: 18
|
Ok, muchas gracias, solucionado
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda con calculo de diferencia de minutos
Java
|
DiTeN
|
2
|
2,899
|
28 Agosto 2009, 06:53 am
por DiTeN
|
|
|
Reconocer areas de imagenes - ayuda
.NET (C#, VB.NET, ASP)
|
Maurice_Lupin
|
4
|
3,414
|
3 Diciembre 2011, 00:36 am
por Keyen Night
|
|
|
ayuda del calculo del ph y cloro
Java
|
miguelsora
|
2
|
2,495
|
1 Junio 2013, 07:56 am
por engel lex
|
|
|
[AYUDA] Cálculo de límites
Dudas Generales
|
_TTFH_3500
|
0
|
1,904
|
3 Julio 2015, 15:14 pm
por _TTFH_3500
|
|
|
Ayuda com Programa de Calculo salarial
Ingeniería Inversa
|
yordin
|
0
|
2,674
|
20 Septiembre 2016, 19:36 pm
por yordin
|
|