if语句里只有两个分支, 但是实际问题一般要用到多分支的选择。
#include <stdio.h>
int main()
{
int data;
char cdata;
printf("请输入一个数:\n");
scanf("%d",&data);
switch(data){
case 1:
puts("满足了条件1的情况");
break;
case 2:
puts("满足了条件2的情况");
break;
case 3:
puts("满足了条件3的情况");
break;
default:
puts("其他非列表中的情况");
}
printf("请输入一个字符:\n");
getchar();
scanf("%c",&cdata);
switch(cdata){
case 'a':
puts("满足了条件a的情况");
break;
case 'b':
puts("满足条件b的情况");
break;
default:
puts("其他非列表中的情况");
}
return 0;
}
二.switch练习学生成绩划分
#include <stdio.h>
int main()
{
int score;
puts("请输入分数:");
scanf("%d",&score);
switch(score/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("等级为D,不及格\n");
break;
case 6:
case 7:
printf("等级为C,一般般\n");
break;
case 8:
case 9:
printf("等级为B,不错\n");
break;
case 10:
printf("等级为A,优秀\n");
break;
default:
printf("成绩非法,请重新输入\n");
}
puts("done!");
return 0;
}
三.根据路径算折扣
用if else来写,代码如下:
#include <stdio.h>
int main()
{
int payoff;
int distance;
int price;
int weight;
puts("请输入路程:");
scanf("%d",&distance);
if(distance < 250){
payoff = 0;
}else if(distance >= 250 && distance < 500){
payoff = 2;
}else if(distance >= 500 && distance < 1000){
payoff = 5;
}else if(distance >= 1000 && distance < 2000){
payoff = 8;
}else if(distance >= 2000 && distance < 3000){
payoff = 10;
}else {
payoff = 15;
}
printf("折扣是:%.2f\n",(float)payoff/100);
return 0;
}
用switch来写:
#include <stdio.h>
int main()
{
int payoff;
int distance;
puts("请输入路程:");
scanf("%d",&distance);
switch(distance/250){
case 0:
payoff = 0;
break;
case 1:
payoff = 2;
break;
case 2:
case 3:
payoff = 5;
break;
case 4:
case 5:
case 6:
case 7:
payoff = 8;
break;
case 8:
payoff = 10;
break;
case 9:
case 10:
case 11:
payoff = 12;
break;
default:
payoff = 15;
break;
}
printf("折扣是:%.2f\n",(float)payoff/100);
return 0;
}