第五章 选择结构

             if  (表达式)

            { 

                            语句     

               }

                    表达式为真,执行语句,在执行花扩号外。  反之 ,跳过语句 ,直接执行花扩号外。

if-else          

                     if  (表达式)

                     {

                           语句1

                       }

                     else

                    {

                                语句2

                      }

             表达式为真 ,执行语句1 ,跳过语句2向下继续执行。 反之,跳过语句1,执行语句2    ,继续执向下执行。

switch

                     switch  (表达式)

                      {

                               case  常量表达式1: 

                                           语句1

                                            break;

                                   

                                case  常量表达式2: 

                                           语句2                                        

                                          break;

                                       .     ......


                              case  常量表达式n: 

                                           语句n

                                            break;

                              default:

                                     语句n+1


                         }

                        break表示case这句结束,可以不写,代表  和下一个case语句都执行


          

/*1.运输公司对用户计算运费.路程越远每公里运费越低.
每公里每吨货物的基本运费p = 3;用户需要输入货
物重量w和距离s;根据距离的不同折扣d不同(具体见)
下面的表格,要求根据用户输入的w和s,计算出总运费f
其计算公式为f=p*w*s*(1-d)。
           s < 250公里         0      折扣
250 <= s < 500              2%   折扣
500 <= s < 1000            5%   折扣
1000<=s < 2000            8%   折扣
2000<=s < 3000            10% 折扣
3000<=s                         15% 折扣
*/




#include<stdio.h>
void main()
{
double p,w,s;
printf("请输入货物重量和距离(用空格间隔)");
scanf("%lf %lf",&w,&s);
p=3;
if (s<250)
{
printf("总运费为:%lf",p*w*s*(1-0));
}
if (s>=250&&s<500)
{
printf("总运费为:%lf",p*w*s*(1-0.02));
}
if (s>=500&&s<1000)
{
printf("总运费为:%lf",p*w*s*(1-0.05));
}
if (s>=1000&&s<2000)
{
printf("总运费为:%lf",p*w*s*(1-0.08));
}
if (s>=2000&&s<3000)
{
printf("总运费为:%lf",p*w*s*(1-0.10));
}
if (s>=3000)
{
printf("总运费为:%lf",p*w*s*(1-0.15));
}

printf("\n");
}




/*
3.请分别输入年月日三个数值,计算出这是这一年的第几天?
(提示:要考虑闰年和2月的情况)
*/


#include <stdio.h>


void main()
{
int year,month,day,sum;
printf("请分别输入年月日三个数值,逗号分隔:");
scanf("%d,%d,%d",&year,&month,&day);

/* 
switch(month)
{
case 1:
sum = day;
break;
case 2:
sum = 31 + day;
break;
case 3:
sum = 31 + 28 + day;
break;
case 4:
sum = 31 + 28 + 31 + day;
break;
case 5:
sum = 31 + 28 + 31 + 30 + day;
break;
case 6:
sum = 31 + 28 + 31 + 30 + 31 + day;
break;
case 7:
sum = 31 + 28 + 31 + 30 + 31 + 30 + day;
break;
case 8:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;
break;
case 9:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;
break;
case 10:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
break;
case 11:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
break;
case 12:
sum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
break;
}
*/
switch(month)
{
case 12:
sum += 30;
case 11:
sum += 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 31;
case 7:
sum += 30;
case 6:
sum += 31;
case 5:
sum += 30;
case 4:
sum += 31;
case 3:
sum += 28;
case 2:
sum += 31;
case 1:
sum += day;
}


if(month > 2)
{
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
sum += 1;
}
}

printf("%d年%d月%d日是当年的第%d天!\n",year,month,day,sum); 



/*
2.企业发放奖金,根据员工销售额提成.(超出部分)
假如员工的销售额是i,那么计算规则如下:
      i < 10万                         10%提成
10 <= i < 20万                        7.5%提成
20 <= i < 40万                           5%提成
40 <= i < 60万                           3%提成
60 <= i < 100万                      1.5%提成
100<=i                                       1%提成
输入员工的销售额,计算出他的提成。
*/


#include <stdio.h>


void main()
{
float sales,reward;
printf("请输入员工的销售额:");
scanf("%f",&sales);

if(sales < 100000)
{
reward =  sales * 0.1f; 

else if(sales < 200000)
{
reward = 10000 + (sales - 100000) * 0.075f;
}
else if(sales < 400000)
{
reward = 10000 + 7500 + (sales - 200000) * 0.05f; 
}
else if(sales < 600000)
{
reward = 10000 + 7500 + 10000 + (sales - 400000) * 0.03f; 
}
else if(sales < 1000000)
{
reward = 10000 + 7500 + 10000 + 6000 +  (sales - 600000) * 0.015f; 
}
else
{
reward = 10000 + 7500 + 10000 + 6000 + 6000 + (sales - 1000000) * 0.01f; 
}

printf("该员工的提成是:%.2f\n",reward);

#include<stdio.h>
void main()
{
double i;
printf("请输入员工销售额(单位万):");
scanf("%lf",&i);
if (i<10)
{
printf("提成为:%lf",i*0.10);
}
if (i>=10&&i<20)
{
printf("提成为:%lf",(10*0.10)+((i-10)*0.075));
}

if (i>=20&&i<40)
{
printf("提成为:%lf",10*0.10+10*0.075+(i-20)*0.05);
}
if (i>=40&&i<60)
{
printf("提成为:%lf",10*0.10+10*0.075+20*0.05+(i-40)*0.03);
}
if (i>=60&&i<100)
{
printf("提成为:%lf",10*0.10+10*0.075+20*0.05+20*0.03+(i-60)*0.015);
}
if (i>=100)
{
printf("提成为:%lf",10*0.10+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01);
}
printf("\n");
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值