循环控制~18鸡尾酒疗法

题目描述:

输入:

第一行为整数n( 1 < n <= 20);
其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。
这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。

输出:

有n-1行输出,分别表示对应改进疗法的效果:
如果效果更好,输出better;如果效果更差,输出worse;否则输出same

 1 #include<stdio.h>
 2 int main(){
 3     int n;                  //有几组实验
 4     scanf("%d",&n);
 5     double a,b;                //鸡尾酒疗法的总病例数和有效病例数
 6     scanf("%lf %lf",&a,&b);
 7     //计算鸡尾酒疗法的治愈率
 8     double A;
 9     A=b/a;
10     //printf("%lf\n",A);
11     double x[30],y[30];        //新疗法的总病例数和有效病例数
12     double X[30];           //新疗法的治愈率
13     for(int i=1;i<=n-1;i++){
14         scanf("%lf %lf",&x[i],&y[i]);
15         X[i] = y[i]/x[i];
16         //printf("%lf",X[i]);
17         //两种疗法结果比较判断
18         //if else语句的关系?
19         if((X[i]-A)>0.05)
20             printf("better\n");
21         else if((A-X[i])>0.05)
22             printf("worse\n");
23         else{
24             printf("same\n");
25         }
26     }
27     return 0;
28 }

solution:

1 精度问题:

  在进行两个数据计算时应统一精度

  否则就会像我刚开始一样int型的a,b得到double型A的结果为错误的0.000000

2 if else 的分支问题

一个if-else

 

单独使用if:

 

 

多个if-else

 

 

posted on 2022-10-13 15:42  罗小罗佳油  阅读(234)  评论(0编辑  收藏  举报