利用switch解决问题 课后题目

项目一

代码:

/*利用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;

}
第七题有点水,这里不贴代码了,大家自己看看就行了,解决了上面第七题完全不是问题


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值