第四课:循环结构

循环结构分很多种,例如:while,do while,for......

而循环结构对于初学者较为困难,但这也是所有C++编程学者必须学会的知识。

今天,给大家一道例题,顺便为大家介绍一下。

而我们的例题叫:鸡尾酒疗法

解题思路:

  1. 先读入鸡尾酒疗法的总病例数和有效病例数,计算其有效率x
  2. 然后用循环读入其他改进疗法的数据,对于每种疗法:
    • 计算有效率y
    • 比较y和x的大小关系,输出better, worse或same

让我们来分解一下题目。

第一步:读入数据

int n,t,e;
cin>>n;
cin>>t>>e;
double x=(double)e/t,y;

首先,我们要知道要比较几组疗法(n),然后读入鸡尾酒疗法的总病例数(t)和有效病例数(e),计算出其有效率x。要把整数e转换成浮点数,否则相除会截断小数部分。

第二步:循环处理其他疗法

for(int i=1;i<n;++i){
cin>>t>>e;
y=(double)e/t;

接下来,我们用一个循环来读入其他n-1种改进疗法的数据。在循环内部,我们要读入总病例数t和有效病例数e,计算有效率y,然后与鸡尾酒疗法的有效率x进行比较。

第三步:疗法比较大展神威

if(y-x>0.05) cout<<"better"<<endl;
else if(x-y>0.05)cout<<"worse"<<endl;
else cout<<"same"<<endl;

我们要判断改进疗法效果是更好(better)、更差(worse)还是差不多(same)。

  • 如果y-x大于5%,说明改进疗法更有效,输出better
  • 如果x-y大于5%,说明改进疗法不如鸡尾酒疗法,输出worse
  • 否则,两者效果相当,输出same

大家一定要记得浮点数比较时直接写0.05而不是5%,因为5%会被当成取余符。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,t,e;
    cin>>n;
    cin>>t>>e;
    double x=(double)e/t,y;
    for(int i=1;i<n;++i){
        cin>>t>>e;
        y=(double)e/t;
        if(y-x>0.05) cout<<"better"<<endl;
        else if(x-y>0.05)cout<<"worse"<<endl;
        else cout<<"same"<<endl;
    }
    return 0;
}

 感谢大家观看,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值