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.
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.
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...
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.