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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


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

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Ayuda programa en C calculo areas
« en: 5 Febrero 2015, 22:15 pm »

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

Código
  1. #include <stdio.h>
  2.  
  3.  
  4. int a;
  5. float cua, rec, tri, cir, rom;
  6. float b,c,d,e,f,g,h,i;
  7. float pi=3.141592;
  8.  
  9.  
  10. int main()
  11.  
  12. {
  13.  
  14.  
  15.    printf("Seleccione la opcion que desee calcular \n \n");
  16.    printf("1.- CUADRADO: \n");
  17.    printf("2.- RECTANGULO: \n");
  18.    printf("3.- TRIANGULO: \n");
  19.    printf("4.- CIRCULO: \n");
  20.    printf("5.- ROMBO: \n");
  21.  
  22.    scanf("%d", &a);
  23.  
  24.    if(a==1){
  25.        printf("Ingrese el lado del cuadrado: \n");
  26.        scanf("%f", &b);
  27.        cua=(float) b*b;
  28.        printf("El area del cuadrado es: %f \n", cua);
  29.    }
  30.  
  31.    else if (a==2){
  32.        printf("Ingrese la base y la altura del rectangulo: \n");
  33.        scanf("%f", &c);
  34.        scanf("%f", &d);
  35.        rec=(float) c*d;
  36.        printf("El area del rectangulo es: %f \n", rec);
  37.    }
  38.    else if (a==3){
  39.        printf("Ingrese la base y la altura del triangulo: \n");
  40.        scanf("%f", &e);
  41.        scanf("%f", &f);
  42.        tri=(float) e*f/2.0;
  43.        printf("El area del triangulo es: %f \n", tri);
  44.    }
  45.    else if(a==4){
  46.        printf("Ingrese el radio del circulo: \n");
  47.        scanf("%f", &g);
  48.        cir=(float) pi*g*g;
  49.        printf("El radio del circulo es: %f \n", cir);
  50.    }
  51.    else if(a==5){
  52.        printf("Ingrese la Diagonal mayor y la Diagonal Menor;\n");
  53.        scanf("%f", &h);
  54.        scanf("%f", &i);
  55.        rom=(float) h*i/2.0;
  56.        printf("El area del rombo es: %f \n", rom);
  57.    }
  58.  
  59.    return 0;
  60.  
  61. }

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda programa en C calculo areas
« Respuesta #1 en: 5 Febrero 2015, 22:24 pm »

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 Desconectado

Mensajes: 18


Ver Perfil
Re: Ayuda programa en C calculo areas
« Respuesta #2 en: 6 Febrero 2015, 20:38 pm »

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 Desconectado

Mensajes: 206


Ver Perfil
Re: Ayuda programa en C calculo areas
« Respuesta #3 en: 6 Febrero 2015, 20:54 pm »

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 Desconectado

Mensajes: 18


Ver Perfil
Re: Ayuda programa en C calculo areas
« Respuesta #4 en: 6 Febrero 2015, 21:47 pm »

Ok, muchas gracias, solucionado

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con calculo de diferencia de minutos
Java
DiTeN 2 2,894 Último mensaje 28 Agosto 2009, 06:53 am
por DiTeN
Reconocer areas de imagenes - ayuda
.NET (C#, VB.NET, ASP)
Maurice_Lupin 4 3,402 Último mensaje 3 Diciembre 2011, 00:36 am
por Keyen Night
ayuda del calculo del ph y cloro
Java
miguelsora 2 2,488 Último mensaje 1 Junio 2013, 07:56 am
por engel lex
[AYUDA] Cálculo de límites
Dudas Generales
_TTFH_3500 0 1,898 Último mensaje 3 Julio 2015, 15:14 pm
por _TTFH_3500
Ayuda com Programa de Calculo salarial
Ingeniería Inversa
yordin 0 2,671 Último mensaje 20 Septiembre 2016, 19:36 pm
por yordin
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines