【洛谷试炼场】新手村:顺序与分支

P1422 小玉家的电费

题目描述:

夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。

C语言源代码:

#include<stdio.h>
int main(){
    const double p1=0.4463,p2=0.4663,p3=0.5663;//分别定义三个时间段对应的每千瓦时花费 
    double electricity,expense;//定义变量electricity表示千瓦时,expense表示总花费 
    scanf("%lf",&electricity);
    //分段依次计算 
    if(electricity<=150)
        expense=p1*electricity;
    else if(electricity<=400)
        expense=p1*150+p2*(electricity-150);
    else
        expense=p1*150+p2*250+p3*(electricity-400);
    printf("%.1f\n",expense);
    return 0;

P1085 不高兴的津津

题目描述:

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式:

输入包括77行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式:

一个数字。如果不会不高兴则输出00,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

C语言源代码:

#include<stdio.h>
int main(){
    int a,b;//学校学习小时,课外学习小时 
    int max_time=0;//当前最大学习总时间 
    int answer=0;//放置输出结果 
    for(int i=0;i<7;i++){//读入7组数据并处理 
        scanf("%d %d",&a,&b);//读入第i+1天的学校学习小时,课外学习小时 
        if(a+b>max_time&&a+b>8){//如果总时间大于8并且当前总时间比之前找到的最大总时间大 
            answer=i+1;//更新答案为星期几 
            max_time=a+b;//更新最大总时间 
        }
    }
    printf("%d",answer);
    return 0;

P1089津津的储蓄计划

题目描述:

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如1月初津津手中还有83元,妈妈给了津津300元。津津预计1月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。到了1月末,津津手中会剩下33元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。

输入格式:

12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。

输出格式:

一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X−X,XX表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。

注意,洛谷不需要进行文件输入输出,而是标准输入输出。

C语言源代码:

#include<stdio.h>
int main(){
    int i,month,left=0,save=0,sum,plan,flag=0;
    for(month=1;month<=12;month++){
        left+=300;
        scanf("%d",&plan);
        left-=plan;
        if(left<0){
            flag=1;
            break;
        }
        else{
            i=left/100;
            save+=(100*i);
            left-=(100*i);
        }
    }
    if(flag)
        printf("-%d",month);
    else
        {sum=((1.2*save)+left);
        printf("%d",sum);
        }
    return 0;

P1909 买铅笔

题目描述:

P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过n支铅笔才够给小朋 友们发礼物。

现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少n支铅笔最少需要花费多少钱。

输入格式:

第一行包含一个正整数n,表示需要的铅笔数量。

接下来三行,每行用2个正整数描述一种包装的铅笔:其中第1个整数表示这种 包装内铅笔的数量,第2个整数表示这种包装的价格。

保证所有的7个数都是不超过10000的正整数。

输出格式:

1个整数,表示P老师最少需要花费的钱。

C语言源代码:

#include<stdio.h>
int main(){
    int n,a1,a2,b1,b2,c1,c2,a,b,c,z;
    scanf("%d",&n);//n是需要铅笔的数量
    scanf("%d %d",&a1,&a2);//a1表示包装内铅笔数量,a2表示包装的价格 
    scanf("%d %d",&b1,&b2);//同上 
    scanf("%d %d",&c1,&c2);//同上 
    a=n/a1;a1=n%a1==0?a:a+1;a=a1*a2;//第一、二各表达式用来求至少需要买的铅笔包数,第三个表达式表示总共需要的价格 
    b=n/b1;b1=n%b1==0?b:b+1;b=b1*b2;//同上 
    c=n/c1;c1=n%c1==0?c:c+1;c=c1*c2;//同上 
    //把买铅笔所需最少的钱交给变量z 
    if(a<b&&a<c)z=a;
    if(b<a&&b<c)z=b;
    if(c<a&&c<b)z=c;
    printf("%d\n",z);//输出
    return 0; 

综述,勤于思考,利用if-else分支结构便可解决

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值