1、任务描述
本关任务:打印华氏-摄氏温度对应表。
温度换算公式: 华氏温度=9/5∗摄氏温度+32
2、函数定义的一般形式如下:
返回值类型 函数名 (参数声明)
{
声明部分
语句序列
}
假设我们要定义一个函数,其功能是计算整数 m 的 n 次幂(n 为整型数且 n >= 0)。函数定义的代码如下所示:
/*powers函数:计算整数 m 的 n 次幂*/
int powers(int m, int n)
{
int i, pow;
pow = 1;
for(i = 1; i <= n; ++1) // 计算 m 的 n 次幂
pow = pow * m;
return pow;
}
注意:函数定义的程序代码不能写在其他函数的内部。
从上述代码可以分析出:
- 函数名是:
powers
; - 参数声明是:
(int m, int n)
; - 返回值类型是:
int
; - 函数返回结果为:
pow
。
注意:参数声明中,各个参数间以逗号间隔,且要明确给出各个参数的数据类型,故函数
powers
的参数声明正确写法是(int m, int n)
,(m,n)
和(int m,n)
的写法都是错误的。
函数调用与函数原型声明
下面的程序代码调用了上面定义好的函数powers
。
/*该程序用来整数 m 的 n 次幂*/
#include <stdio.h>
int powers(int m, int n); // 函数原型声明
int main ()
{
int i, k;
for(i = 0,k = 2;i <= 10 ; ++1)
printf("%d的%d次幂:%d\n",k, i, powers(k, i)); //调用函数powers
return 0;
}
注意:当函数定义的程序代码写在调用它的函数后面,例如若函数powers
写在主函数main
的后面,则在主函数main
的前面必须对函数powers
进行函数原型声明。这和使用变量前必须先声明变量是一样的道理。
函数的返回值
函数的返回值通过 return
语句返回,其一般形式如下:
return 表达式; // return 语句将控
当主函数调用powers
函数时,程序控制权会从调用函数main
交给被调用函数powers
。在powers
函数内部,一旦遇到return
语句并执行后,程序控制权将从被调用函数powers
交回调用函数main
,同时,将return
后面跟着的表达式的值传递回调用函数main
。
提示:当函数没有定义返回值类型时,即函数返回值类型缺省,程序将默认函数的返回值类型为整型。
测试说明
平台会对你编写的代码进行测试。
测试输入:5 50
预期输出:
华氏温度 摄氏温度
5 -15.0
10 -12.2
15 -9.4
20 -6.7
25 -3.9
30 -1.1
35 1.7
40 4.4
45 7.2
50 10.0
代码展示:
/*本程序打印温度转换表*/
#include <stdio.h>
float temconversion(float fahr); /* 函数原型声明 */
int main(void)
{
float fahr, celsius;
float lower, upper, step;
scanf("%f%f",&lower,&upper);
step = 5;
fahr = lower;
printf("华氏温度\t摄氏温度\n");
while (fahr <= upper) {
celsius = temconversion(fahr); /* 调用函数 */
printf("%3.0f\t\t%6.1f\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}
float temconversion(float fahr)
{
return(5*(fahr-32))/9;/*请在此处添加代码,完善 temconversion 函数实现温度转换计算*/
/********** Begin **********/
/********** End **********/
}
运行结果: