以下两道题都相当于用if语句代替了switch语句的结构。switch结构是根据表达式找到符合条件的case分支,然后执行那个case分支和之后的所有case分支。而if,else if结构与之不同的是,if表达式判断为真,就只执行当前分支并退出结构。
#include<stdio.h>
int main()
{
double i,b=0;
scanf("%lf",&i);
if(i>100)
{
b+=(i-100)*0.01;
i=100;
}
if(i>60&&i<=100)
{
b+=(i-60)*0.015;
i=60;
}
if(i>40&&i<=60)
{
b+=(i-40)*0.03;
i=40;
}
if(i>20&&i<=40) //没有大括号时if后面只能写一条语句
{
b+=(i-20)*0.05;
i=20;
}
if(i>10&&i<=20)
{
b+=(i-10)*0.075;
i=10;
}
if(i>0&&i<=10) b+=i*0.1;
printf("%f\n",b);
}
#include<stdio.h>
int main()
{
double d,p=0;
scanf("%lf",&d);
int l=d+1;//数据类型的转换
if(l>15)
{
p+=(l-15)*2.1;
l=15;
}
if(l>2&&l<=15)
{
p+=(l-2)*1.5;
l=2;
}
if(l<=2)
{
p+=7;
}
printf("%f\n",p);
}