作业帮 > 综合 > 作业

C语言:一个计算摄氏度华氏度和绝对温度三种数转换的程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/13 14:51:08
C语言:一个计算摄氏度华氏度和绝对温度三种数转换的程序
初学C语言
有道题大概是
要求创建一个Temperatures的新函数,开始输入一个摄氏度,通过调用Temperatures这个函数同时输出华氏度和绝对温度,
摄氏度=1.8*华氏度+32
绝对零度=摄氏度+273.16
这是自己写的,但是感觉指针用的极其不对,望高手指教,能改就改,不能改请给我一个正确的参考一下
/* Celsius,Kelvin,Fahrenheit -摄氏度 绝对温度 华氏度
#include "stdio.h"
double Tempeartures(double *,double*,double*);
int main()
{
\x09double Celsius,Kelvin,Fahrenheit;
\x09while (Fahrenheit!=0)
\x09{
\x09\x09printf("please enter a Fahrenheit number");
\x09\x09scanf("%f",&Fahrenheit);
\x09\x09Temperatures(&Fahrenheit,&Celsius,&Kelvin);
\x09\x09printf("%fFahrenheit is %fKelvin is %fCelsius",Fahrenheit,Kelvin,Celsius);
\x09\x09return 0;
\x09}
void Temperatures(double*u,double*v,double*w)
{
\x09*v=1.8*(*v)=32;
\x09*w=*v+273.16;
}
while ()前少了一个printf("please enter a Fahrenheit number");
\x09\x09scanf("%f",&Fahrenheit);
然后循环体中1,2和3.4行换下位置
循环打错了,失误
你指针用的对 没错
void Temperatures(double*u,double*v,double*w)这个函数实现了 就放在main()函数上面 把那个函数声明去掉(只有当函数体是在其他文件实现的时候才单独用一个头文件声明函数的)
其次你的变量没初始化 输入摄氏度 是你的输入 但你的while是确实华氏度;
#include "stdio.h"
void Temperatures(float*u,floate*v,float*w) //改一下类型
{
\x05*v=1.8*(*v)=32;
\x05*w=*v+273.16;
}
main()

double Celsius,Kelvin,Fahrenheit;//要初始化,在下面你加入这行
printf("please enter a Fahrenheit number");
\x05while ((scanf("%f",&Fahrenheit))!=-1)
{
Temperatures(&Fahrenheit,&Celsius,&Kelvin);
printf("%fFahrenheit is %fKelvin is %fCelsius",Fahrenheit,Kelvin,Celsius);
printf("please enter a Fahrenheit number");

return 0;

不懂的话用hi问我哈
再问: 我改后还是不行啊,3个变量都初始化了3个变量的数据类型也都是float : error C2601: 'Tempeartures' : local function definitions are illegal (: fatal error C1004: unexpected end of file found 还是不行啊~~~~~~~
再答: 刚刚我也是匆匆忙忙的看大致看一下 有些细节还是没注意到 呵呵 和你一样粗心了 我帮你重新敲了一遍 试过了 结果也是正确 #include void Temp(float *u,float *v,float *w) //改一下类型 { *u = 1.8*(*v) + 32; *w = *v + 273.16; } main() { float Celsius = 0,Kelvin = 0,Fahrenheit = 0;//要初始化,在下面你加入这行 printf("please enter a Fahrenheit number: "); while ((scanf("%f",&Celsius))!=-1) { Temp(&Fahrenheit,&Celsius,&Kelvin); printf("Fahrenheit is %.2f Kelvin is %.2f Celsius is %.2f\n", Fahren printf("please enter a Fahrenheit number: "); } return 0; } please enter a Fahrenheit number: 10 Fahrenheit is 50.00 Kelvin is 283.16 Celsius is 10.00 please enter a Fahrenheit number: 12 Fahrenheit is 53.60 Kelvin is 285.16 Celsius is 12.00 please enter a Fahrenheit number: 45 Fahrenheit is 113.00 Kelvin is 318.16 Celsius is 45.00 please enter a Fahrenheit number: 56 Fahrenheit is 132.80 Kelvin is 329.16 Celsius is 56.00 please enter a Fahrenheit number: 23 Fahrenheit is 73.40 Kelvin is 296.16 Celsius is 23.00 please enter a Fahrenheit number: 45 Fahrenheit is 113.00 Kelvin is 318.16 Celsius is 45.00 对了 printf("please enter a Fahrenheit number: "); 这两句打印语句里面的Fahrenheit改为 Celsius 你输入的是摄氏度 你试试在你机子能运行对不
再问: : error C2065: 'Temp' : undeclared identifier : error C2373: 'Temp' : redefinition; different type modifiers : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data VC++6.0还是无法运行....
再答: 不是吧 你太悲剧了 我在我的机子都能运行 最后那个几行是我贴出来的运行结果 我觉得应该是编译器的原因 我是linux下里面gcc编译的
再问: 晕,不会是因为VB不支持C99的缘故吧? 额,我改天用gcc试试