son signos signo segundo quinto que primer para menos mayor matematicas los imprimir igual grado ejercicios ejemplos cuáles comparación comparacion codigo c if-statement comparison switch-statement

signos - Más grande que y menor que en la instrucción de cambio C



signo mayor o igual ≤ en el codigo ascii (6)

¿Por qué tiene preferencia para usar el interruptor?

Pregunto porque esto suena terriblemente como una ''pregunta de tarea''. Un compilador debería tratar la construcción if / else tan eficientemente como un switch (incluso si no se tratara de rangos).

Switch no puede manejar rangos como lo ha mostrado, pero podría encontrar una manera de incluir el interruptor categorizando primero la entrada (usando if / else) y luego usando una instrucción switch para generar la respuesta.

Intento escribir un código que tenga mucha comparación

Write a program in “QUANT.C” which “quantifies” numbers. Read an integer “x” and test it, producing the following output: x greater than or equal to 1000 print “hugely positive” x from 999 to 100 (including 100) print “very positive” x between 100 and 0 print “positive” x exactly 0 print “zero” x between 0 and -100 print “negative” x from -100 to -999 (including -100) print “very negative” x less than or equal to -1000 print “hugely negative” Thus -10 would print “negative”, -100 “very negative” and 458 “very positive”.

entonces traté de resolverlo usando el interruptor pero no funcionó, ¿tengo que resolverlo usando la declaración if o hay un método para resolverlo usando el interruptor?

#include <stdio.h> int main(void) { int a=0; printf("please enter a number : /n"); scanf("%i",&a); switch(a) { case (a>1000): printf("hugely positive"); break; case (a>=100 && a<999): printf("very positive"); break; case (a>=0 && a<100): printf("positive"); break; case 0: printf("zero"); break; case (a>-100 && a<0): printf("negative"); break; case (a<-100 && a>-999): printf("very negative"); break; case (a<=-1000): printf("hugely negative"); break; return 0; }


No hay una manera clara de resolver esto con el interruptor, ya que los casos deben ser tipos integrales. Eche un vistazo a if-else if-else.


Si está utilizando gcc, tiene "suerte" porque admite exactamente lo que desea mediante el uso de una extensión de idioma:

#include <limits.h> ... switch(a) { case 1000 ... INT_MAX: // note: cannot omit the space between 1000 and ... printf("hugely positive"); break; case 100 ... 999: printf("very positive"); break; ... }

Sin embargo, esto no es estándar, y otros compiladores no entenderán tu código. A menudo se menciona que debe escribir sus programas solo usando características estándar ("portabilidad").

Así que considere usar la construcción "simplificada" if-elseif-else :

if (a >= 1000) { printf("hugely positive"); } else if (a >= 100) { printf("very positive"); } else if ... ... else // might put a helpful comment here, like "a <= -1000" { printf("hugely negative"); }


Un método sin switch y if-else-less. Advertencia: no intente entregar esto para su asignación como "su" solución, porque es posible que le pregunten cómo funciona.

#include <stdio.h> int main(void) { int a=0, i; struct { int value; const char *description; } list[] = { { -999, "hugely negative" }, { -99, "very negative" }, { 0, "negative" }, { 1, "zero" }, { 100, "positive" }, { 1000, "very positive" }, { 1001, "hugely positive" } }; printf("please enter a number : /n"); scanf("%i",&a); for (i=0; i<6 && a>=list[i].value; i++) ; printf ("%s/n", list[i].description); return 0; }


(a>1000) evalúa como 1 [verdadero] o 0 [falso].

compilar y recibirá el error

test_15.c:12: error: case label does not reduce to an integer constant

esto significa que debe usar un valor integer constant para las etiquetas de case . If-else if-else loop debería funcionar bien para este caso.


Esto puede llegar un poco tarde, pero:

switch( option(a) ){ case (0): ... case (1): ... case (2): ... case (n): ...

Donde la función option () es simplemente una función con if else. Le permite mantener el aspecto limpio de un interruptor y la parte lógica está en otra parte.