zhengzhisheng6 2022-02-12 21:09 采纳率: 91.7%
浏览 48
已结题

就负数不知道该怎么办

请编写一个函数,传入一个 double 类型的实数 A 以及一个值为 1 或 2 的一个整数 type,分别表示一个温度和一个参数。需要传出一个 double 类型的实数 B ,表示另一个温度。当参数 type 值为 1 时,表示 A 的单位为摄氏度,需将其转换为华氏度温度 B 并返回;当参数 type 值为 2 时,表示 A 的单位为华氏度,需将其转换为摄氏度温度 B 并返回。
假设有摄氏度温度 A ,将其转换为华氏度温度 B 的公式为:
B=95A+32
输入格式
第一行一个整数 q ,表示有 q 组询问。
接下去 q 行,每行包含一个实数 A 和一个整数 type ,表示一次询问。
输出格式
共 q 行,包含一个实数,表示一组询问的答案。
注意:答案四舍五入到3位小数
样例
样例输入
2
0.0 1
20 2
样例输出
32.000
-6.667
数据范围
1≤q≤10000
−100≤A≤1000
1≤type≤2

#include<bits/stdc++.h>
using namespace std;
int main(){
    int q;
    cin>>q;
    while(q--){
        double f;
        int type;
        cin>>f>>type;
        if(type==1) printf("%.3f\n",5.0/9.0*f+32);
        else printf("%.3f\n",5.0/9.0*(f-32));
    }
}

这里只考虑了正数,望补充一下负数

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-02-12 23:04
    关注

    第10行 printf("%.3f\n",5.0/9.0*f+32);分子分母位置错了, 应改为:printf("%.3f\n",9.0/5.0*f+32); 。这个公式正负数通吃的:

    //#include<bits/stdc++.h>
    #include <iostream>
    #include <cstdio>
    using namespace std;
    int main()
    {
        int q;
        cin>>q;
        while(q--){
            double f;
            int type;
            cin>>f>>type;
            if(type==1)
               printf("%.3f℉\n",9.0*(f)/5.0+32);
               //printf("%.3f\n",5.0/9.0*f+32);
            else
               printf("%.3f℃\n",5.0*(f-32)/9.0);
               //printf("%.3f\n",5.0/9.0*(f-32));
        }
        return 0;
    }
    
    

    华氏-摄氏对照表 https://wenku.baidu.com/view/545d8d500912a216147929ad.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月21日
  • 已采纳回答 2月13日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题