Ayuda PROGRAMADORES en C POR FAVOR
-
ForoParalelo: Dios
Ayuda PROGRAMADORES en C POR FAVOR
A ver, tengo un código pero se me queda en bucle infinito o directamente no me da ningún valor. Alguien me ayuda? No sé cómo hacer el bucle para que me sume días y se pare cuando llegue a m/2 o un valor menor...
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
minicial=m;
dia=1;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do{
decremento=minicial*(p/100);
mfinal=minicial-decremento;
dia=dia + 1;
printf("%i | %.4f | %.4f | %.4f \n ",
dia, minicial, decremento, mfinal);
if(minicial<m/2 || minicial == m/2 )
break;}
while(minicial>m/2);
system("pause");
return 0;
}
-
ForoParalelo: Miembro
-
ForoParalelo: Miembro
Que tiene que hacer el codigo en si?
-
ForoParalelo: Miembro
Siempre se puede usar el debugger de VS2017 para comprobar estas cosas y tiene pinta que es cosa de las condiciones
-
AutoBanned
Iniciado por
Adolf Effemberg
Alt+ Controll + suprimir
cambiese el nombre y pongase uno mas acorde a su rasa mora como paco don pepe y sus globos jolines a todo gas lobesno son wanda onda bital alberto el ambriento telemoñeco o alguna de esas webadas que inbentan ustedes
-
Hijo de Electrik
El último bucle:
do{
decremento=minicial*(p/100);
mfinal=minicial-decremento;
dia=dia + 1;
printf("%i | %.4f | %.4f | %.4f \n ",
dia, minicial, decremento, mfinal);
if(minicial<m/2 || minicial == m/2 )
break;
}
while(minicial>m/2);
Para salir del bucle minicial o m tienen que llegar a algún valor, pero en ninguna parte dentro de él se modifican, así que nunca llegará a la condición de salida.
Por otro lado, es un poco redundante esta parte:
if(minicial<m/2 || minicial == m/2 )
break;
Puesto que la condición de salir es precisamente esa (do-wwhile(minicial>m/2));
Y bonus track, si pese a todo quieres mantener esa condición, puedes poner:
if(minicial<=m/2)
break;
-
Sudapollista follaco*ista
-
ForoParalelo: Dios
Hecho
Por si alguien lo quiere aquí está la solución
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
printf("La masa disminuye a menos de la mitad de su valor inicial en %i dias \n", dia);
system("pause");
return 0;
}
-
ForoParalelo: Dios
Iniciado por
eIetrick
El último bucle:
do{
decremento=minicial*(p/100);
mfinal=minicial-decremento;
dia=dia + 1;
printf("%i | %.4f | %.4f | %.4f \n ",
dia, minicial, decremento, mfinal);
if(minicial<m/2 || minicial == m/2 )
break;
}
while(minicial>m/2);
Para salir del bucle minicial o m tienen que llegar a algún valor, pero en ninguna parte dentro de él se modifican, así que nunca llegará a la condición de salida.
Por otro lado, es un poco redundante esta parte:
if(minicial<m/2 || minicial == m/2 )
break;
Puesto que la condición de salir es precisamente esa (do-wwhile(minicial>m/2));
Y bonus track, si pese a todo quieres mantener esa condición, puedes poner:
if(minicial<=m/2)
break;
Lo he sacado, me rompí la cabeza pero he dado con la solución
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
printf("La masa disminuye a menos de la mitad de su valor inicial en %i dias \n", dia);
system("pause");
return 0;
}
-
TODO POR LA PATRIA
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
float m;
float p;
int dia;
float minicial;
float mfinal;
float decremento;
int main(void){
do {printf("Valor de m?: \n");
scanf("%f", &m);
if(m<0)
printf("El valor de m debe de ser positivo \n");}
while(m<0);
do {printf("Valor de p?: \n");
scanf("%f", &p);
if(p<0 || p>100)
printf("El valor de p debe ser mayor que 0 y menor o igual que 100 \n");}
while(p<0 || p>100);
mfinal=m;
dia=0;
printf("\n");
printf("Dia | Masa inicial | Decremento | Masa final \n ");
printf("----|--------------|------------|----------- \n");
do {
dia=dia+1;
minicial=mfinal;
decremento=mfinal*(p/100);
mfinal=minicial-decremento;
printf("%i | %.4f | %.4f | %.4f \n", dia, minicial, decremento, mfinal);
} while(mfinal>m/2);
-
ForoParalelo: Miembro
Iniciado por
peralimon
Que tiene que hacer el codigo en si?
Verificar el precio del producto.....
-
Hijo de Electrik
Iniciado por
El_Pelebra83
La respuesta es 9.
A mí me da 288
-
ForoParalelo: Miembro
-
ForoParalelo: Miembro
No te ofendas pero, da autentico asco leer ese código.
-
Hijo de Electrik
Iniciado por
Renik
No te ofendas pero, da autentico asco leer ese código.
Hombre, si está empezando con que haga lo que quiere que haga es más que suficiente.
-
ForoParalelo: Dios
Iniciado por
Renik
No te ofendas pero, da autentico asco leer ese código.
Llevo un mes programando. Qué consejos me darías? En el entorno de desarrollo lo tengo más ordenado, aquí sale todo junto
-
ForoParalelo: Miembro
Iniciado por
JDRISGOD
Llevo un mes programando. Qué consejos me darías? En el entorno de desarrollo lo tengo más ordenado, aquí sale todo junto
Yo este tipo de programas tan academicos suelen seguir este patron:
valores = obtener_datos()
resultado = procesar_datos(valores)
devolver_resultado(resultado)
function obtener_datos(){
/* TODO
Aqui haces la interaccion con el usuario, le pides el valor, compruebas que es correcto, si no lo es le dices que tal y pascual.
*/
}
function procesar_datos(valores){
/** TODO
aqui es donde procesas el datos, si p>4 haz esto(valores) si p<0 haz_lo_otro(valores). Mas que nada porque en el futuro, cuando tengas que cambiar algo del codigo
normalmente vas a acudir a estas funciones
*/
}
function devolver_resultado(resultado)
{
/* TODO
Aqui es donde muestras por pantalla los resultados. Yo suelo poner esto porque muchas veces te piden que cambies el formato de salida. Cambiar tus resultados a que salgan por pantalla, que envies el resultado por correo o que te conectes a tal pagina para postear el resultado
printf("Tu resultado es...")
*/
}
-
ForoParalelo: Miembro
Te falta el coño.h quiero decir el conio.h sino no podrás hacer pausas parguela
Permisos de publicación
- No puedes crear nuevos temas
- No puedes responder temas
- No puedes subir archivos adjuntos
- No puedes editar tus mensajes
-
Reglas del foro
▲
▼
Atajos de Navegación Disponibles