gpt4 book ai didi

C Primer Plus 编程练习题

转载 作者:太空宇宙 更新时间:2023-11-04 06:07:45 25 4
gpt4 key购买 nike

我正在学习“C Primer Plus”,刚刚完成了编程练习,但我在第五章(运算符、表达式和语句)的最后一节上碰壁了。

练习是:

编写一个程序,请求用户输入华氏温度。该程序应将温度读取为 double ,并将其作为参数传递给用户提供的名为 Temperatures() 的函数。此函数应计算摄氏当量和开尔文当量,并以小数点右侧两位的精度显示所有三个温度。它应该用它代表的温标来识别每个值。这是将华氏度转换为摄氏度的公式:

摄氏度 = 1.8 * 华氏度 + 32.0

科学中常用的开尔文标度是一种标度,其中 0 表示绝对零,即可能温度的下限。这是将摄氏度转换为开尔文的公式:

开尔文 = 摄氏度 + 273.16

Temperatures() 函数应使用 const 创建出现在转换中的三个常量的符号表示。 main() 函数应使用循环允许用户重复输入温度,并在输入 q 或其他非数字值时停止。

我的代码是:

#include <stdio.h>
void Temperatures(double);
int main(void)
{
double farh;
printf("Enter a fahrenheit temperature: ");
scanf("%f", &farh);
printf("\n");
Temperatures(farh);
return 0;

}

void Temperatures(double f)
{

float c;
float k;
c = 1.8 * f + 32;
k = c + 273.16;
printf("Fahrenheit Celcius Kelvin\n");
printf("%.2f %.2f %.2f\n", f, c, k);

}

我哪里做错了? :o 胡说八道。

最佳答案

您通过 scanf 请求一个 float %f 作为输入,但将其存储在 double 中。 float 和 double 通常大小不同,如果是这样,当你试图将 float 存储在 double 中时你会得到垃圾。尝试改用 %lf,或将“farh”更改为 float 。

关于C Primer Plus 编程练习题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6304457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com