Autor
|
Tema: Ayuda con ejercicio en C (Leído 5,835 veces)
|
BatchianoISpyxolo
Desconectado
Mensajes: 166
|
tambien te lo conteste al principio del hilo y no me hiciste mucho caso. pero bueno, te dejo aqui el codigo a falta de implementar lo del numero de 100 cifras. #include <stdio.h> #include <stdint.h> #include <inttypes.h> int main() { uint64_t segundos, minutos, horas, dias; printf("Introduce los segundos: "); scanf("%llu", &segundos ); minutos=segundos/60; if (segundos %=60) puts("N"); else puts("S"); horas=minutos/60; if (minutos %=60) puts("N"); else puts("S"); dias=horas/24; if (horas %=24) puts("N"); else puts("S"); printf("%llu d, %llu h, %llu m, %llu s\n", dias , horas , minutos , segundos ); return 0; }
salida: xiruko:~$ gcc segundos.c -o segundos xiruko:~$ ./segundos Introduce los segundos: 5650560900 S N S 65400 d, 0 h, 15 m, 0 s xiruko:~$ un saludo! Y ya, si lo quieres hacer precioso, usas el operador ternario en vez de los ifs xD Por ejemplo: puts ( horas%=24 ? "N" : "S" );
|
|
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
Y ya, si lo quieres hacer precioso, usas el operador ternario en vez de los ifs xD Por ejemplo: puts ( horas%=24 ? "N" : "S" ); ya lo habia pensado aunque no sabia que se podia usar como parametro. lo habia pensado asi:
pero realmente era lo mismo que ponerlo con if/else asi que me decidi por lo que esta por ser mas claro. aunque gracias por la aclaracion, la verdad es que si que queda mas bonito xD
|
|
|
En línea
|
|
|
|
Caster
|
xiruko si que me habia fijado en tu respuesta, de hecho para hacer el codigo que hice yo me base en lo que respondiste tu, conocia el operador ternario, y para que quede mas bonito esta bien usarlo, pero a mi personalmente me gusta mas usar un if - else. Lo unico que no entiendo es esto: segundos%=60
Saludos
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Lo unico que no entiendo es esto: segundos%=60
segundos=1900 segundos/60=31==> esto serían minutos resto=segundos%60=40 es decir, te da los segundos inferiores a 60, o sea lo que quedarían en 1900 después de "quitar" los segundos múltiplo de 60
|
|
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
Lo unico que no entiendo es esto: segundos%=60
es el operador resto o mod (como dije en el primer comentario), y esta sentencia es equivalente a esta: segundos=segundos%60;
exactamente igual que todas estas que quizas si que has visto: a+=b; // a=a+b; a*=b; // a=a*b; //etc
conocia el operador ternario, para que quede mas bonito esta bien usarlo, pero a mi personalmente me gusta mas usar un if - else. de hecho, a parte de bonito o no (que eso va a gustos), es mas eficiente que un if/else. pero bueno en este programa tampoco viene de ahi asi que... un saludo!
|
|
« Última modificación: 31 Octubre 2012, 21:22 pm por xiruko »
|
En línea
|
|
|
|
Caster
|
Vale, ahora lo entiendo todo perfectamente, me gusta mas el codigo de xiruko, es simple, no es largo y facil de entender, muchas gracias a todos por la ayuda.
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] Ejercicio C 100
Ejercicios
|
Dem0ny
|
2
|
6,260
|
19 Diciembre 2007, 22:45 pm
por Dem0ny
|
|
|
Ayuda co un ejercicio de C#
.NET (C#, VB.NET, ASP)
|
hitori batusai
|
2
|
5,604
|
22 Febrero 2008, 01:53 am
por hitori batusai
|
|
|
Ayuda con ejercicio de VB
Programación Visual Basic
|
guada_sp
|
5
|
3,605
|
8 Marzo 2008, 02:54 am
por jackl007
|
|
|
[Ejercicio] Aca tienen un ejercicio para practicar
« 1 2 3 »
Programación Visual Basic
|
Dreamaker
|
20
|
16,648
|
5 Septiembre 2010, 02:57 am
por TGa.
|
|
|
Ayuda ejercicio de Pascal, cuando uno no lo ve claro pide ayuda
Programación General
|
manu3742
|
1
|
3,564
|
31 Marzo 2011, 15:43 pm
por d(-_-)b
|
|