知还啊啊 2024-03-06 17:29 采纳率: 66.7%
浏览 2

鸡尾酒疗法要求全部输出再全部输入?

#include <iostream>
#include <cstdio>
#include <math.h> 
using namespace std;
int main()
{
int n,x,y;
int c[20],d[20];
scanf("%d",&n);
scanf("%d %d",&x,&y);
double a=y/x;
double b[20];
for(int i=0;i<n-1;++i){
scanf("%d %d",&c[i],&d[i]);
b[i]=d[i]/c[i];
}
for(int i=0;i<n-1;++i){
if(b[i]-a>0.0500) printf("better\n");
else if(a-b[i]>0.0500) printf("worse\n");
else printf("same\n");
}
return 0;
}

懂哥们帮忙看一下吧,运行出来为什么全是same

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-06 17:30
    关注

    引自免费微信小程序:皆我百晓生

    在你提供的C++代码中,程序的目的是比较输入的一系列c[i]/d[i](比例)与给定的基准比例y/x之间的差距,并根据差距大小输出"better"、"worse"或"same"。问题在于,你设置的判断阈值是0.0500,这意味着只有当两个比例之差大于0.05时,才会输出"better"或"worse";否则,输出"same"。

    如果运行结果全为"same",可能的原因有以下几点:

    1. 输入的数据比例与基准比例之间的差距均小于等于0.05。
    2. 输入数据格式不正确,导致计算出的比例始终接近基准比例。
    3. 可能存在逻辑理解偏差,比如本应比较的是绝对值差,而非直接相减。

    为了进一步排查,请确认输入数据集是否满足上述条件。如果期望得到不同的输出结果,请调整判断条件或检查输入数据的准确性。下面是调整了判断条件以考虑绝对值差的代码示例:

    #include <iostream>
    #include <cstdio>
    #include <cmath> 
    using namespace std;
    int main()
    {
        int n, x, y;
        int c[20], d[20];
        scanf("%d", &n);
        scanf("%d %d", &x, &y);
        double a = y / x;
        double b[20];
        for (int i = 0; i < n - 1; ++i) {
            scanf("%d %d", &c[i], &d[i]);
            b[i] = d[i] / c[i];
        }
        for (int i = 0; i < n - 1; ++i) {
            // 使用fabs计算绝对值差,并修改判断条件
            if (fabs(b[i] - a) > 0.0500) {
                if (b[i] > a)
                    printf("better\n");
                else
                    printf("worse\n");
            } else {
                printf("same\n");
            }
        }
        return 0;
    }
    

    请根据实际情况调整代码中的判断条件和逻辑,确保其符合你的需求。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月6日

悬赏问题

  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)