johncuii 2024-10-06 23:13 采纳率: 50%
浏览 9
已结题

(C语言|温度转换程序

C语言编程求帮助,我这个函数不知道哪里出了问题,就华氏输入多少计算的结果都一样,我感觉离成功已经很接近了,但是就是不对,temper这个函数里面的n是灰色的是不是没有被引用啊,所以才导致我输入什么结果输出的都一样。刚使用csdn不会发帖,要是有不对的地方还请包涵。

#include<stdio.h>
int temper(double n);
int main(void)
{
    double huashi;
    printf("please enter a temper in numer:\n");
    while (scanf_s("%f",&huashi) == 1)
    {
        temper(huashi);
        printf("please enter another temper\n");
    }
    printf("done\n");
    return 0;
}
int temper(double n)
{
    double sheshi, kaishi;
    sheshi = 5.0 / 9.0 * (n - 32.0);
    kaishi = sheshi + 273.16;
    printf("%.2f F=%.2f C=%.2f K\n", n, sheshi, kaishi);
    return 0;
}

img

  • 写回答

2条回答 默认 最新

  • 一轮明月照丘壑 2024-10-06 23:14
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你提供的代码和描述来看,问题可能在于你的temper函数中的计算部分并没有真正执行。在你的代码中,temper函数接收一个双精度浮点数n作为参数,但在函数内部并没有使用到这个参数。你在计算华氏温度转摄氏温度和开氏温度时使用的变量是sheshikaishi,但它们并没有被赋予正确的值。你需要将输入的华氏温度转换为摄氏温度和开氏温度,但在你的代码中,这部分转换的计算被重复使用了错误的变量名,并且并没有对输入的华氏温度进行正确的转换。正确的转换应该是这样的:

    double sheshi = (n - 32.0) * 5.0 / 9.0; // 华氏温度转摄氏温度
    double kaishi = sheshi + 273.15; // 摄氏温度转开氏温度
    

    另外,你的代码中的scanf_s函数可能并不是所有编译器都支持的,如果你使用的是GCC编译器,建议使用标准的scanf函数代替。此外,你的代码中的注释和格式化输出部分也存在一些问题,需要进行修正。修正后的代码如下:

    #include <stdio.h>
    
    int temper(double fahrenheit); // 函数声明,接受华氏温度作为参数
    
    int main(void) {
        double fahrenheit; // 华氏温度变量
        printf("Please enter a temperature in Fahrenheit:\n"); // 提示用户输入华氏温度
        while (scanf("%lf", &fahrenheit) == 1) { // 使用scanf读取用户输入的华氏温度
            temper(fahrenheit); // 调用temper函数进行转换并打印结果
            printf("Please enter another temperature in Fahrenheit:\n"); // 提示用户继续输入下一个华氏温度
        }
        printf("Done.\n"); // 结束程序
        return 0; // 返回0表示程序正常结束
    }
    
    int temper(double fahrenheit) { // 函数定义,接受华氏温度作为参数
        double celsius = (fahrenheit - 32.0) * 5.0 / 9.0; // 华氏温度转摄氏温度
        double kelvin = celsius + 273.15; // 摄氏温度转开氏温度
        printf("%.2f F = %.2f C = %.2f K\n", fahrenheit, celsius, kelvin); // 打印转换结果
        return 0; // 返回0表示函数执行成功
    }
    

    希望这个修正后的代码可以解决你的问题。如果还有其他问题,请随时向我提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 修改了问题 10月6日
  • 创建了问题 10月6日