【发布时间】:2010-10-22 00:49:21
【问题描述】:
因此,该程序应该在给出每日最高、最低和预计最低的时间后,估算一天中的每小时温度。我在调用主函数中的函数时遇到问题。我真的不明白我应该如何从函数中获取特定信息,并在我的主函数中使用它来代替变量。我也很难理解参数和参数的概念。我确定我在这里不止一个地方搞砸了,但我现在最关心的是功能。任何帮助将不胜感激。
#include <stdio.h>
#include <math.h>
#define PI 3.14159
double getFahrTemp(double high, double low, int hour);
double fahr2cels( double fahr );
double cels2kelv( double cels );
double fahr2rank( double fahr );
double getDailyHigh()
{
int high;
printf("Enter the daily high temperature <F>:\n");
scanf("%d",&high);
return high;
}
double getDailyLow()
{
int low;
printf("Enter the daily low temperature <F>:\n");
scanf("%d",&low);
return low;
}
int getLowHour()
{
int lowHour;
printf("Enter the time of the daily low temperature:\n");
scanf("%d",&lowHour);
return lowHour;
}
double getFahrTemp(double high, double low, int hour)
{
return (high-low)/2 * sin(2*PI/24 * hour + 3.0/2.0 * PI) + (high+low)/2;
}
double fahr2cels( double fahr )
{
double cels;
cels = fahr - 32 / 1.8;
}
double cels2kelv( double cels )
{
double kelv;
kelv = cels + 273;
}
double fahr2rank ( double fahr )
{
double rank;
rank = fahr + 459.67;
}
int main(getDailyHigh, getDailyLow, getLowHour, getFahrTemp)
{
int hour, time;
printf ("Temperature Scale Conversion Chart:\n")
printf ("TIME FAHR CELSIUS KELVIN RANKINE")
getDailyHigh();
getDailyLow();
getLowHour();
do
{
int time, hour=1;
time = (hour + lowHour) % 12;
getFahrTemp(getDailyHigh(), getDailyLow(), hour)
fahr2cels
cels2kelv
fahr2rank
printf ("%d:00 %2.2d %2.2d %3.2d %3.2d\n", time, fahr, cels, kelv, rank;
hour = hour++;
}
while (hour <= 24);
}
【问题讨论】:
-
我确定您的编译器已经为此向您抱怨过,但是您应该将“int high”和“int low”从 getDailyHigh/Low 更改为 doubles,并根据您的 scanf() 命令进行相应的更改.您已声明函数将返回一个双精度但返回一个整数。
-
我认为现在一切正常,除了我收到以下错误:“错误:调用的对象 getDailyHigh 不是函数”。