Autor
|
Tema: Ayuda con codigo en C (Leído 4,222 veces)
|
DARKDMR
Desconectado
Mensajes: 24
|
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: #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
Mensajes: 443
A lie is a lie
|
Hola DARKDMR, para empezar tienes varios errores conceptuales bastante graves: Aquí, lees un solo carácter y lo almacenas en una variable de tipo int. Lo correcto sería declarar tipo como char. 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(). 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
Mensajes: 24
|
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
|
#include <stdio.h> int main() { int sTerreno = 0; int sConstruccion = 0; int sTipo = 0; double sValor; printf("Ingrese el valor del terreno:\n"); printf("Ingrese el tipo de construccion:\n 1-Lujo\n 2-Estandar\n"); printf("Ingrese el valor de la construcción:\n"); scanf("%d", &sConstruccion ); if (sTipo == 1){ sValor = sTerreno + sConstruccion; }else{ sValor = (sTerreno + sConstruccion) * 15 / 100; } printf("El valor del inmueble es: %f.\n", sValor ); return 0; }
Resultado, shellroot@alex-laptop:~/Escritorio$ gcc PoC.c shellroot@alex-laptop:~/Escritorio$ ./a.out Ingrese el valor del terreno: 2000 Ingrese el tipo de construccion: 1-Lujo 2-Estandar 1 Ingrese el valor de la construcción: 3000 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
Mensajes: 24
|
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
|
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
Mensajes: 24
|
int sTerreno = 0; int sConstruccion = 0; int sTipo = 0; double sValor; no entiendo por que lo igualo a 0 y 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
|
Se inicializa la variable y como no contiene nada entonces le pongo 0. Que sería igual poner (aunque siempre prefiero darle un valor). 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
Mensajes: 250
|
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
Mensajes: 11
|
lo que te han dicho Shell Root y someRandomCode es correcto y una cosa mas: 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
|
|
|
|
|
|