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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Ayuda con codigo en C
« en: 13 Octubre 2010, 01:10 am »

Buenas amigos les escribo por un problema que tengo el cual es el siguiente:
tengo que hacer un ejercicio que me permita calcular el valor de un inmueble a partir del costo del terreno, construccion y del tipo de construccion (se agrega un impuesto del 15% del total cuando la construccion sea de lujo y no se agrega nada en especial en caso de que la construccion sea estandar.
mi codigo es el siguiente:
Código:
 #include <stdio.h>
int main () {
     int valor,ter,cons,tipo, esperar;
     printf("introduzca el valor del terreno en bs: ");
     scanf("%d",&ter);
     printf("Diga el tipo de construccion si es de Lujo o estandar: ");
     scanf("%c",&tipo);
     printf("introduzca el valor de la construccion en bs: ");
     scanf("%d",&cons);
     if (tipo=='estandar') valor=ter+cons;
     else valor=(ter+cons)*15/100;
     printf(" el valor del inmueble es: %d.",valor);
     scanf("%d",esperar);
     }
     

No me lo corre como es y no se en donde me equivoque.
estoy utilizando este compilador Dev-C++
de ante mano agradezco la ayuda que pueda recibir y pido disculpas por mis molestias saludos.


En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Ayuda con codigo en C
« Respuesta #1 en: 13 Octubre 2010, 01:28 am »

Hola DARKDMR, para empezar tienes varios errores conceptuales bastante graves:

Código:
scanf("%c",&tipo);
Aquí, lees un solo carácter y lo almacenas en una variable de tipo int. Lo correcto sería declarar tipo como char.

Código:
if (tipo=='estandar')
Esto en c no se puede hacer así, de hecho, tipo lo tienes declarado como una variable de tipo integer y la estas comparando con una cadena de caracteres. Para comparar cadenas de caracteres utiliza strcmp().

Código:
int main ()

Si declaras el procedimiento main() para que devuelva un int, al final de la función debes devolver algún valor o al compilar te dará un error.


« Última modificación: 13 Octubre 2010, 01:30 am por Khronos14 » En línea

DARKDMR

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda con codigo en C
« Respuesta #2 en: 13 Octubre 2010, 01:30 am »

lo solucionaría como amigo?
porque es que el prof nos dio varios ejemplos y de hay nosotros teniamos que hacer este.
Gracias por la respuesta.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Ayuda con codigo en C
« Respuesta #3 en: 13 Octubre 2010, 04:14 am »

Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.    int sTerreno = 0;
  5.    int sConstruccion = 0;
  6.    int sTipo = 0;
  7.    double sValor;
  8.  
  9.    printf("Ingrese el valor del terreno:\n");
  10.    scanf("%d", &sTerreno);
  11.  
  12.    printf("Ingrese el tipo de construccion:\n    1-Lujo\n    2-Estandar\n");
  13.    scanf("%d", &sTipo);
  14.  
  15.    printf("Ingrese el valor de la construcción:\n");
  16.    scanf("%d", &sConstruccion);
  17.  
  18.    if (sTipo == 1){
  19.        sValor = sTerreno + sConstruccion;
  20.    }else{
  21.        sValor = (sTerreno + sConstruccion) * 15 / 100;
  22.    }
  23.  
  24.    printf("El valor del inmueble es: %f.\n", sValor);
  25.    return 0;
  26. }

Resultado,
Código
  1. shellroot@alex-laptop:~/Escritorio$ gcc PoC.c
  2. shellroot@alex-laptop:~/Escritorio$ ./a.out
  3. Ingrese el valor del terreno:
  4. 2000
  5. Ingrese el tipo de construccion:
  6.    1-Lujo
  7.    2-Estandar
  8. 1
  9. Ingrese el valor de la construcción:
  10. 3000
  11. El valor del inmueble es: 5000.000000.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
DARKDMR

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda con codigo en C
« Respuesta #4 en: 13 Octubre 2010, 04:22 am »

 ;-) muchas gracias amigo hay cosas que no entendi pero ya con eso de seguro lo termino gracias de nuevo por haberte tomado la molestia.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Ayuda con codigo en C
« Respuesta #5 en: 13 Octubre 2010, 04:28 am »

Pregunta por lo que no entiendes, yo también ando aprendiendo C y C++
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
DARKDMR

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda con codigo en C
« Respuesta #6 en: 13 Octubre 2010, 04:38 am »

Código:
 int sTerreno = 0;
    int sConstruccion = 0;
    int sTipo = 0;
    double sValor;
no entiendo por que lo igualo a 0

y

Código:
 if (sTipo == 1){
        sValor = sTerreno + sConstruccion;
    }else{
        sValor = (sTerreno + sConstruccion) * 15 / 100;
    }
no entiendo porque hay que volver a abrir las llaves y por ultimo lo de return 0 lo que pasa es que nosotros no trabajamos asi o almenos hasta orita y cuando compilo el codo se cierra de una vez que me tira el resultado.
Gracias de nuevo amigo...
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Ayuda con codigo en C
« Respuesta #7 en: 13 Octubre 2010, 05:04 am »

Se inicializa la variable y como no contiene nada entonces le pongo 0. Que sería igual poner (aunque siempre prefiero darle un valor).
Código
  1. int sTerreno;

Los corchetes es para representar el bloque de código al que pertenece la clausula IF. En este caso, como es solo una linea, no es obligatorio la inclusión de los corchetes.

El RETURN, es porque al iniciar el MAIN, le dices que retorne un entero, con el fin de verificar si ocurrió algún error en el método principal.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Ayuda con codigo en C
« Respuesta #8 en: 14 Octubre 2010, 04:35 am »

C no inicializa las variables por defecto, lo que tomen por valor inicial es lo que hubiera en ésa zona de memoria anteriormente, asique es correcto inicializar las variables.
Dadas las cantidades de memoria que tienen los equipos hoy en dia, es muy probable que de antemano no hubiere nada escrito por ahi, pero no está de más asegurarse.
En línea

vincentlaw

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: Ayuda con codigo en C
« Respuesta #9 en: 14 Octubre 2010, 07:59 am »

lo que te han dicho  Shell Root y someRandomCode es correcto y una cosa mas:


Citar
cuando compilo el codo se cierra de una vez que me tira el resultado.

si te refieres a que se te sierra rapidisimo

puedes poner antes de tu ultimo corchete un

getchar();

o un

system("pause")

simplemente para ver el resultado, esto no tiene una funcion fundamental, es unicamente para  poder ver los resultados
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines