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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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

Desconectado Desconectado

Mensajes: 29



Ver Perfil
ayuda con este codigo
« en: 7 Abril 2012, 20:09 pm »

Bueno hice un código con mi equipo que diga cuanot slitros de agua necesita cada casa, ya tengo todo el codigo, lo compile lo corri todo bien, pero debo indicar que si el numero es negativo, que diga que no exista, lo he logrado pero solo lo dice hasta que me da el resulatdo, y esque usa una formula
a*b/c
a=Número de contenedores
b=Litros del contenedor
c=Numero de casas
aquie sta el código

#include<stdio.h>
#inlcude<conio.h>
main();{
 int a,b,c,d;
 clrscr();
 printf("dame el nuemro de contenedores");
 scanf("%d", &a);
 printf("\n Dame los litros del contenedor");
 scanf("%d",&b);
 printf("\n dame el número de casas");
 scanf("%d",&c);
 if(a,b,c>0){
 d=(a*b)/c;
 printf("\n La cantodad de litros por casa es %d", d);}
 else
 printf("No existen números negativos ni un numero en fraccion");}
 getch();
 }

bueno el problema es en que si al primer nuemro lo pongo como negativo me deja proceder con el sigueinte numero cosa queno quiero, lo unico que e conseguio es que me diga que no existen los litros negativos pero me lo dice hasta el final, osea el resultado, y si pones un numero en fraccion te manda luego luego a decir que no existe asi es loq ue quiero que haga pero con negativos tambein ... ayudaaaaaa :-X


En línea

"Un final feliz depende de donde acabes el cuento" Orsen Welles
s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: ayuda con este codigo
« Respuesta #1 en: 7 Abril 2012, 20:29 pm »

Código
  1. #include<stdio.h>
  2. #inlcude<conio.h>
  3. main()
  4. {
  5.    int a,b,c,d;
  6.    bool bandera = true;
  7.    clrscr();
  8.    printf("dame el nuemro de contenedores");
  9.    scanf("%d", &a);
  10.    if(a > 0)
  11.    {
  12.        printf("\n Dame los litros del contenedor");
  13.        scanf("%d",&b);
  14.        if(b > 0)
  15.        {
  16.            printf("\n dame el n&#250;mero de casas");
  17.            scanf("%d",&c);
  18.            if(c <= 0)
  19.                bandera = false;
  20.        }else{
  21.            bandera = false;
  22.        }
  23.    }else{
  24.        bandera = false;
  25.    }
  26.    if(bandera)
  27.    {
  28.        d=(a*b)/c;
  29.        printf("\n La cantodad de litros por casa es %d", d);
  30.    }else{
  31.        printf("No existen n&#250;meros negativos ni un numero en fraccion");
  32.    }
  33.    getch();
  34. }
  35.  


En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: ayuda con este codigo
« Respuesta #2 en: 7 Abril 2012, 20:30 pm »

Tenés muchos errores.
Por qué pusiste un "punto y coma" después del main() ?
Por qué main() no tiene ningún tipo, y no retorna valor ?
Te faltó cerrar una llave.
Y ese if no funciona.

Lo arreglé un poco:
Código
  1. #include<stdio.h>
  2.  
  3. int main(){
  4. int a,b,c,d;
  5.  
  6. do{
  7. printf("Dame el nuemro de contenedores: ");
  8. scanf("%d", &a);
  9. }while( a < 0 );
  10.  
  11. do{
  12. printf("Dame los litros del contenedor: ");
  13. scanf("%d",&b);
  14. }while( b < 0 );
  15.  
  16. do{
  17. printf("Dame el número de casas: ");
  18. scanf("%d",&c);
  19. }while( c < 0 );
  20.  
  21. d = ( a*b ) / c;
  22. printf( "La cantidad de litros por casa es %d\n", d );
  23. return 0;
  24. }
En línea

david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: ayuda con este codigo
« Respuesta #3 en: 7 Abril 2012, 20:40 pm »

yo te lo optimizo aún más sin decir "dulces lunas" weee XD
mejor dicho, otra propuesta de como hacerlo
Código:
#include<stdio.h>
 
int main(){
int a,b,c;
while(true){
a=0;
printf("Dame el nuemro de contenedores: ");
scanf("%d", &a);
if(a>0)break;
}
while(true){
b=0;
printf("Dame los litros del contenedor: ");
scanf("%d",&b);
if(b>0)break;
}
while(true){
c=0;
printf("Dame el número de casas: ");
scanf("%d",&c);
if(c>0)break;
}

printf( "La cantidad de litros por casa es %f\n", (float)((a*b)/c) );
while(getchar()!='\n');
return 0;
}

« Última modificación: 7 Abril 2012, 20:41 pm por david_BS » En línea

maik22

Desconectado Desconectado

Mensajes: 29



Ver Perfil
Re: ayuda con este codigo
« Respuesta #4 en: 7 Abril 2012, 20:49 pm »

hehe, bueno pues prmero que nada muchas gracias, pero la neta no se que e slo que hicieron haha, disculpen mi ignorancia esque apenas ando empezando ene esto, y esque cambian muchos comandos, no digo que este mal, solo digoq ue si me explicaran para qeu sirve por decir while, o esos que sustituyeron estaria perfecto, y aun mas si me dijeran el poque mi codigo esta mal, por que ami solo me falla lo que les pongo, de que si pongo un numero negativo quiero que me salte todo y diga, no existen por decir cantidad de reciekpientes negativos jeje
En línea

"Un final feliz depende de donde acabes el cuento" Orsen Welles
david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: ayuda con este codigo
« Respuesta #5 en: 7 Abril 2012, 20:54 pm »

te doy un consejo con respecto a otra cosa, cada vez que hagás una división tenés que comprobar que no vayas a dividir por cero.
En línea

maik22

Desconectado Desconectado

Mensajes: 29



Ver Perfil
Re: ayuda con este codigo
« Respuesta #6 en: 8 Abril 2012, 01:20 am »

CrisQC, probe tu codigo pero lo que este hace es que si le das un número negativo no te deja avanzar hasta que pongas uno positivio, lo que no se es ocmo le hiciste :/
En línea

"Un final feliz depende de donde acabes el cuento" Orsen Welles
Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: ayuda con este codigo
« Respuesta #7 en: 8 Abril 2012, 01:43 am »

Lo que hacen while y do while es ejecutar el código entre llaves {} mientras la expresión dentro de los paréntesis () sea verdadera. La diferencia es que el do while primero ejecuta y luego evalúa. El ciclo que hizo @David se corta con el break, sino sería infinito: while( true ).
Tenés miles de formas para hacer lo que necesitas.
Un buen manual de C/C++ que te recomiendo es el de Pozo Coronado. Podés buscarlo en Google. Me parece muy completo y ahí vas a entender muy bien todo esto.

PD: @David ya quité mi firma ja.
« Última modificación: 8 Abril 2012, 01:50 am por CrisQC » En línea

maik22

Desconectado Desconectado

Mensajes: 29



Ver Perfil
Re: ayuda con este codigo
« Respuesta #8 en: 8 Abril 2012, 03:56 am »

Va, primero que nada gracias CrisQC tu comentario me ayudo a comprender tu codigo, y mmm, tengo un horribel problema, logre cambiar el codigo para que hiciera loq ue yo queria, ahora si introduzco un numero negativo o con deciaml, me dice que es imposible hasta ahi esta bien, solo que ahora si e meto nuemro sgrandes como no se primero
590
1000
75
el resultado me lo tira negativo :S, con numeros grandes no sirve el programa y no entinedo porque, con los pequeños si hace bien als operaciones, me estoy volveindo loco ayudaa, aquie esta el codigo:

#include<stdio.h>
#include<conio.h>
 int a,b,c,d;
 main() {
  clrscr();
 printf("Dame el número de contenedores");
 scanf("%d",&a);
  if(a<0){
    printf("\n Dame lo litros del contenedor");
    scanf("%d",&b);
  if(b>0){
     printf("\n Dame el número de casas");   
     scanf("%d",&c);
  if(c>0){
d=(a*b)/c;
 printf("\n La cantidad de litros que hayq ue poner en cada casa es %d",d);
 }
else printf(\n no hay deciamles ni negativos");
}
else printf(\n no hay deciamles ni negativos");
}
else printf(\n no hay deciamles ni negativos");
getch();
}




En línea

"Un final feliz depende de donde acabes el cuento" Orsen Welles
maik22

Desconectado Desconectado

Mensajes: 29



Ver Perfil
Re: ayuda con este codigo
« Respuesta #9 en: 8 Abril 2012, 03:59 am »

Sera qeu el "int" no aguanta nuemros tan grandes???? porque con numeros pequeños is hace bien el calculo comprobado por mi calculadora, epro con grandes saca tonterias y aveces hasta negativas :S, perdonden el codigo de arriba como lo transcribi podria haber errores pequeños :S, pero si me lo compila y corre
-...
En línea

"Un final feliz depende de donde acabes el cuento" Orsen Welles
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con este codigo
Programación Visual Basic
5v5 2 2,739 Último mensaje 31 Mayo 2005, 22:56 pm
por 5v5
ayuda con este codigo
Programación Visual Basic
<housedir> 3 2,129 Último mensaje 17 Noviembre 2007, 03:05 am
por mos-k
AYUDA CON ESTE CODIGO
Programación Visual Basic
70N1 0 1,110 Último mensaje 2 Febrero 2008, 10:06 am
por 70N1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines