#include <stdio.h>main(){ int x; char ch1; printf("Enter a number: "); scanf("%d",&x); switch(x) { case 1://for the first case #1-30 case 30: printf("The number you entered is >= 1 and <= 30"); printf("\nTake BrIEfcase Number 1"); break; case 31://for the second case #31-59 case 59: printf("The number you entered is >= 31 and <= 59"); printf("\nTake BrIEfcase Number 2"); break; case 60://for the third case #60-89 case 89: printf("The number you entered is >= 60 and <= 89"); printf("\nTake BrIEfcase Number 3"); break; case 90://for the fourth case #90-100 case 100: printf("The number you entered is >= 90 and <= 100"); printf("\nTake BrIEfcase Number 4"); break; default: printf("Not in the number range"); break; } getch(); }
我的教授告诉我们,有一个较短的方法,如何做到这一点,但不会告诉我们如何.我可以想到缩短的唯一方法是使用IF,但我们不允许.任何关于我如何使这项工作的想法?
解决方法 使用GCC和CLang,您可以使用大小写范围,如下所示:switch (x){case 1 ... 30: printf ("The number you entered is >= 1 and <= 30\n"); break;}
唯一的交叉编译器解决方案是使用这样的case语句:
switch (x){case 1:case 2:case 3:case 4:case 5:case 6: printf ("The number you entered is >= 1 and <= 6\n"); break;}
编辑:使用某种功能来切换(x / 10)是另一个很好的方法.当范围不是10的差异时,使用GCC案例范围可能更简单,但另一方面,您的教授可能不会将GCC扩展名作为答案.
总结以上是内存溢出为你收集整理的C – 多个案例编号切换全部内容,希望文章能够帮你解决C – 多个案例编号切换所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)