计蒜客:鸡尾酒疗法
我的结果不对,似乎数据没有全部输入进去,但是不知道哪里出了问题
下面是我的代码:
#include<stdio.h>
int main()
{
int n,i;
double dis,re,x,y;
scanf("%d",&n);
scanf("%lf %lf",&dis,&re);
x=re/dis;
for(i=1;i<n;i++);
{
scanf("%lf %lf",&dis,&re);
y=re/dis;
if(x-y>0.05)
printf("worse\n");
else if(y-x>0.05)
printf("better\n");
else printf("same\n");
}
return 0;
}
去除第9行for循环的分号即可。
#include<stdio.h>
int main()
{
int n,i;
double dis,re,x,y;
scanf("%d",&n);
scanf("%lf %lf",&dis,&re);
x=re/dis;
// printf("n=%d,dis=%f,re=%f,x=%f\n",n,dis,re,x);
//去除for循环后面的分号即可
for(i=1;i<n;i++)
{
// printf("i=%d\n",i);
scanf("%lf %lf",&dis,&re);
y=re/dis;
// printf("i=%d,dis=%f,re=%f,y=%f\n",i,dis,re,y);
if(x-y>0.05)
printf("worse\n");
else if(y-x>0.05)
printf("better\n");
else printf("same\n");
}
return 0;
}
【以下回答由 GPT 生成】
这段代码存在几个问题,导致结果不正确:
x
和 y
没有声明和初始化。for
循环的终止条件设置错误,多了一个分号。x
每次循环没有更新。以下是修改后的代码:
#include <stdio.h>
int main()
{
int n, i;
double dis, re, x, y;
scanf("%d", &n);
scanf("%lf %lf", &dis, &re);
x = re / dis;
for(i = 1; i < n; i++) // 删除了多余的分号
{
scanf("%lf %lf", &dis, &re);
y = re / dis;
if(x - y > 0.05)
printf("worse\n");
else if(y - x > 0.05)
printf("better\n");
else
printf("same\n");
x = y; // 更新 x 的值
}
return 0;
}
通过以上修改,问题应该能够得到解决。
【相关推荐】