解题思路:看如下代码的注释

注意事项:我都写的那么详细了不给个5星好评?

参考代码:

#include<stdio.h>

int main()

{

    int a,b,c,d;

    int i;                                                           //2          12          3         2       这里以题目给的2 ,12 ,3,2为例子

    scanf("%d%d%d%d",&a,&b,&c,&d);//几个水果,多少元,租金,水果价格。

    int e;                                                          //a              b         c         d       这里是变量的注释,方便阅读

    e=b/c;                       //这里的作用是先得到所带的钱都花在房租的天数(即理想条件下),比如带了12块,房租是三块,则最多能满足不吃水果的情况旅游4天

    int count=0;             //这里count是旅游的天数。

    if(a>e)           //这里说的是如果带的水果个数大于全部把钱花在房租的天数时,则可理解为水果充足,不用买水果,把钱全花在房租即可,则旅游最大天数为4天

    {

        count=e;


    }

    if(a<e)                          //这里说的是如果水果带的不充足(其实为不理想的情况),则要考虑花钱在水果上了。

    {

        if(b>c)                              //首先如果带的钱带的钱都不够交房租的话count=0;退出if,如果大于房租的话进入if,

        {

          for(i=0;i<a;i++)                 //此处为不用交水果钱的情况,此时只用花费房租钱

         {

            b=b-c;

            if(b>=c)

            {

                count=count+1;                    //如果剩下的钱大于房租钱时,则继续

            }

            else                    //如果不够的话,直接退出if(既然这都退出if了自然下面的while也不会执行),所以直接到了输出阶段;

            {

                break;

            }


         }

            while(b>=c+d)    //此处为即为水果吃完的时候,要交水果钱(当然同时也要交房租),所以继续开始扣钱;(当然如果不够的话就不进入while)

           {


               b=b-d-c;

               count=count+1;

           }

        }



    }

    printf("%d",count);          //最后把最终天数给输出一下。

    return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论