-5

我们有 4 个区域:a b c d

我们想把这些数字放在这些区域中。

如何仅使用 switch 语句来做到这一点:

 the number divisible by 10 and divisible by 7 ın region a
 the number divisible by 10 but not divisible by 7 ın region b
 the number not divisible by 10 but divisible by 7 ın region c
 the number not divisible by 10 and divisible by 7 ın region d

例如,如果:

input 770 out put is a

input 200 output b

input 154 output c
4

3 回答 3

6

像这样的东西可以工作,但不确定这是否是你所要求的:

switch ((number % 7 == 0) * 2 + (number % 10 == 0))
{
case 0:
  puts("d");
  break;
case 1:
  puts("b");
  break;
case 2:
  puts("c");
  break;
case 3:
  puts("a");
  break;
}
于 2013-04-03T10:20:11.137 回答
1
var1 = n % 7;
var2 = n % 10;

switch ( var1 ){
    case 0 :
       switch( var2 ){
                         case 0: printf("a");break;
                         default: printf("b");break;
                    }

    default :
       switch( var2 ){
                         case 0: printf("c");break;
                         default: printf("d");break;
                    }
}
于 2013-04-03T10:41:40.013 回答
0

一种直接的方法是使用嵌套switch作为嵌套ifs 的替代方法 :):

char *foo(int i) {
    int imod10 = i%10;
    int imod7 = i%7;
    switch(imod10) {
        case 0:
            switch(imod7) {
                case 0:
                    return "A";
                    break;
                default:
                    return "B";
            }
            break;  
        default:
            switch(imod7) {
                case 0:
                    return "C";
                    break;
                default:
                    return "D";
            }
    }
}

有关测试用例的示例,请参见https://ideone.com/OacutE 。

于 2013-04-03T10:26:22.450 回答