项目一
代码:
/*利用switch解决问题
课后一 投票表决器*/
#include <stdio.h>
int main()
{
char c;
scanf("%c",&c);
switch(c)
{
case 'Y':
case 'y':
printf("agree\n");break;
case 'N':
case 'n':
printf("disagree\n");break;
default:
printf("lose");
}
return 0;
}
项目二
代码:
/*利用switch解决问题
课后二 成绩等级*/
#include <stdio.h>
int main()
{
float c;
scanf("%f",&c);
switch(c>=90&&c<=100)
{
case 1:
printf("A\n");break;
case 0:
switch(c>=80&&c<90)
{
case 1:
printf("B");break;
case 0:
switch(c>=70&&c<80)
{
case 1:
printf("C");break;
case 0:
switch(c>=60&&c<70)
{
case 1:
printf("D");break;
default:
printf("E");
}
}
}
}
if (c<0||c>100)
printf("error");
return 0;
项目三
代码:
/*利用switch解决问题
课后三 分段函数求值switch语句版*/
#include <stdio.h>
#include <math.h>
int main()
{
int x;
double y;
scanf("%d",&x);
switch((x<2)+(x<6)+(x<10))
{
case 3:
y=x;break;
case 2:
y=pow(x,2)+1;break;
case 1:
y=sqrt(x+1);break;
default:
y=1/(x+1.0);<span style="color:#ff0000;">//特别注意,这里x是int型,除法归零性质,最好是用整型提升将分母强制转换为double型,不然结果都是0</span>
}
printf("%.8lf",y);
return 0;
}
项目四
代码:
/*利用switch解决问题
课后四 本月还有几天*/
#include <stdio.h>
int main()
{
int y,m,x;
scanf("%d %d",&y,&m);
x=((y%4==0)&&(y%100!=0))||(y%400==0);//这里前面的&&优先比||高,不加括号提示警告,但是也可以正常运行,加括号警告消除
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("本月31天");break;
case 4:
case 6:
case 9:
case 11:
printf("本月30天");break;
case 2:
switch(x)
{
case 1:
printf("本月29天");break;
default:
printf("本月28天");
}
}
if(m<0||x>12)
printf("error");
return 0;
}
项目五
代码:
/*利用switch解决问题
课后四 个人所得税计算器switch语句版*/
#include <stdio.h>
int main()
{
double dSalary,dTax=0,dNetlncome=0,d;
printf("请输入您本月的收入总额(元):");
scanf("%lf",&dSalary);
d=dSalary-3500;
if(dSalary<=0)
printf("输入错误");
else if(d<0&&dSalary>0)
printf("您的收入不需要纳税");
else
{
switch((d>0&&d<=1500)+(d<=4500)+(d<=9000)+(d<=35000)+(d<=55000)+(d<=80000))
{
case 6:
dTax=d*0.03;
dNetlncome=dSalary-dTax;break;
case 5:
dTax=d*0.1;
dNetlncome=dSalary-dTax-105;break;
case 4:
dTax=d*0.2;
dNetlncome=dSalary-dTax-555;break;
case 3:
dTax=d*0.25;
dNetlncome=dSalary-dTax-1005;break;
case 2:
dTax=d*0.3;
dNetlncome=dSalary-dTax-2755;break;
case 1:
dTax=d*0.35;
dNetlncome=dSalary-dTax-5505;break;
default:
dTax=d*0.45;
dNetlncome=dSalary-dTax-13505;
}
printf("您本月应缴个人所得税%.2lf元,税后收入是%.2lf元。\n",dTax,dNetlncome);
printf("依法纳税,共享繁荣。谢谢使用!\n");
}
return 0;
}
项目六
代码:
/*利用switch解决问题
课后五 银行存款利息计算器*/
#include <stdio.h>
int main()
{
double a,c;//a为存款金额,c为到期总利息,d为本息总额
int b,d;//存款类型
printf("欢迎使用利息计算器\n");
printf("请输入存款金额:");
scanf("%lf",&a);
printf("======存款期限======\n");
printf("1. 活期存款\n");
printf("2. 3个月\n");
printf("3. 6个月\n");
printf("4. 一年\n");
printf("5. 二年\n");
printf("6. 三年\n");
printf("7. 五年\n");
printf("请输入存款期限的代号:");
scanf("%d",&b);
if(b>7||b<=0)
printf("选择存款类型错误!请重新输入\n");
else
{
if(b==1)
{
printf("请输入存款天数:");
scanf("%d",&d);
c=a*0.0035*d/360;//题目没有给出活期存款的利息,这里参照2015年最新活期存款利率,一年照360天计算
}
else
{
switch(b)
{
case 2:
c=a*0.031*0.25;break;
case 3:
c=a*0.033*0.5;break;
case 4:
c=a*0.035*1;break;
case 5:
c=a*0.044*2;break;
case 6:
c=a*0.05*3;break;
default:
c=a*0.055*5;
}
}
printf("到期利息为%lf,本息合计共%.2lf元\n",c,c+a);
}
printf("感谢您的使用,欢迎下次光临!");
return 0;
}
第七题有点水,这里不贴代码了,大家自己看看就行了,解决了上面第七题完全不是问题