Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: BienWare en 1 Marzo 2018, 11:48 am



Título: Añadir 3 condiciones && en un if ¿Es posible? C
Publicado por: BienWare en 1 Marzo 2018, 11:48 am
Buenas, estoy intentando introducir tres condiciones en un if, más o menos así:

Citar
#include <stdio.h>

int main (void) {

int h,m,s;

printf ("Introduce valor para horas\n");

scanf ("%i", &h);

printf ("Introduce valor para minutos\n");

scanf ("%i", &m);

printf ("introduce valor para seg\n");

scanf ("%i", &s);

if (h <= 23 && m <=60 && s <= 60) { s++ }

else { printf ("Los datos no son correctos");}

if (s == 60) {
    s = 00
    m++ }

if (m == 60) {m = 0}

printf ("La hora es %i:%i:%i:\n", h,m,s);

system ("pause");

   return 0;

}

No creo que sea necesario mencionar que no llevo ni dos semanas aprendiendo a programar, y es algo que hago por simple gusto, no seais crueles.


Título: Re: Añadir 3 condiciones && en un if ¿Es posible? C
Publicado por: kub0x en 1 Marzo 2018, 12:26 pm
Código
  1. if (h <= 23 && m <=60 && s <= 60){
  2.  s++;
  3. }else {
  4.  printf ("Los datos no son correctos");
  5. }
  6.  
  7. if (s == 60) {
  8.    s = 00
  9.    m++ }
  10.  
  11. if (m == 60) {m = 0}
  12.  

Primero al s++ de dentro del if le falta un punto-coma ";". Ahora estas haciendo que m,h y s sean menores o iguales, pero luego compruebas que s y m sean iguales a 60. Si sigues sin verlo te explico:

En el caso de que s=60,m=60 y h<=23 entrara dentro del if y hara s++ siendo s ahora 61. Despues miraras si s==60 pero no porque es 61 y los minutos seguiran siendo 60. Cuando los minutos son 60 los reinicias m=0, pero no incrementas la hora.


Título: Re: Añadir 3 condiciones && en un if ¿Es posible? C
Publicado por: Serapis en 4 Marzo 2018, 20:21 pm
Buenas, estoy intentando introducir tres condiciones en un if, más o menos así:

Añadir 3 condiciones && en un if ¿Es posible? C )
Técnicamente un lenguaje no limita el número de condiciones, sino al límite que el compilador tuviere en la pila.... vamos que puedes tener perfectamente 40 y 4000 condiionales en una sola línea si fuera preciso.
Otra cosa es que sea aconsejable a partir de cierto número, o dicho de otro modo, si hay un número alto de condiciones en una misma línea cabe preguntarse si el código que se está realizando es subóptimo...


Título: Re: Añadir 3 condiciones && en un if ¿Es posible? C
Publicado por: e en 12 Marzo 2018, 20:34 pm
Claro que se puede,de hecho yo para la minishell que estoy creando uso eso para los comandos en vez de diferentes aplicaciones.
Código
  1. #include <stdio.h>
  2. int main() {
  3. int a;
  4. char n;
  5. n = 165;
  6. a = 1;
  7. char comando[20];
  8. do{
  9. printf("");
  10. gets(comando);
  11. if (comando[0] == 'd' && comando[1] == 'i' ) {
  12. comando[0] = ' ';
  13. comando[1] = ' ';
  14. printf("%s",comando);
  15. }
  16. if (comando[0] == 's' && comando[1] == 'a' && comando[2] == 'l' && comando[3] == 'i' && comando[4] == 'r'){
  17. a = 0;
  18. }
  19. } while(a == 1);
  20. }

Es decir,para los comandos uso:
si comando[0] == 'd',y así para evaluar una string,aunque hay muchas maneras.