循环控制~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