Añadir 3 condiciones && en un if ¿Es posible? C

Iniciado por BienWare, 1 Marzo 2018, 11:48 AM

0 Miembros y 1 Visitante están viendo este tema.

BienWare

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.
Bienaventurados sean los que programen en ruby, porque de ellos será la tierra.

kub0x


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}


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.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


Serapis

Cita de: BienWare en  1 Marzo 2018, 11:48 AM
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...

e

Claro que se puede,de hecho yo para la minishell que estoy creando uso eso para los comandos en vez de diferentes aplicaciones.
#include <stdio.h>
int main() {
int a;
char n;
n = 165;
a = 1;
char comando[20];
do{
printf("");
gets(comando);
if (comando[0] == 'd' && comando[1] == 'i' ) {
comando[0] = ' ';
comando[1] = ' ';
printf("%s",comando);
}
if (comando[0] == 's' && comando[1] == 'a' && comando[2] == 'l' && comando[3] == 'i' && comando[4] == 'r'){
a = 0;
}
} while(a == 1);
}


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