解题思路:比较两种疗法的治愈率。
注意事项:唯一的难点就是解决输入输出混合的问题,如果按照常规写法输入输出会混合在一起。这时就需要一个容器来存储每次循环的结果--数组。
但是运用数组要明确有效索引,不然会引起数组越界,此题的有效索引是0~n-1(排除鸡尾酒疗法后,其他疗法一共有n-1组),故数组最大索引是n,for循环条件是
n-1。为了保证输入和输出分开,用了两次一样的for循环,第一次通过数组输入并按顺序存储,第二次做判断后按顺序输出。
参考代码:
#include <stdio.h>
int main()
{
int n;
int i;
int a,b;
double x,y;
scanf("%d",&n);
scanf("%d %d",&a,&b);
x=(double)b/a;
int all[n],yes[n];
for(i=1;i<=n-1;i++){
scanf("%d %d",&all[i],&yes[i]);
}
for(i=1;i<=n-1;i++){
y = (double)yes[i]/all[i];
if(y-x>0.05){
printf("better\n");
}else if(x-y>0.05){
printf("worse\n");
}else{
printf("same\n");
}
}
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复