c语言的一道swich 题目,帮个忙

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:00:59
请将以下语句改写成switch语句(注意:不允许出现任何形式的if语句)。
if((s>0)&&(s<=10))
if((s>=3)&&(s<=6)) x=2;
else if((s>1)||(s>8)) x=3;
else x=1;
else x=0;

switch语句只适合于char、byte、int、short型
switch(s)
{
case 3:
case 4:
case 5:
case 6:x = 2;break;
case 1:
case 7:
case 8:x = 1;break;
case 2:
case 9:
case 10:x = 3;break;
default x = 0;
}

#include <stdio.h>
main()
{
int s,mark;

printf("Please enter s :");
scanf("%d",&s);

mark=s/1; /*采用整除的方法,将mark的取值压缩到有限的取值范围内*/
switch(mark)
{
case 10:
printf("x=0\n");break;
case 9:
printf("x=3\n");break;
case 8:
printf("x=1\n");break;
case 7:
printf("x=1\n");break;
case 6:
case 5:
case 4:
case 3:
printf("x=2\n");break;
case 2:
printf("x=3\n");break;
case 1:
printf("x=0\n");break;
default: /*处理非法数据*/
printf("Input error\n