你好:
程序打印效果如下:
7 -1
12 //这里是1和2 ,不是12
2.0
0.600
程序解释:
#include //包含头文件
#define T(c)(((c)>='0')&&((c)
void f1(char ch) //f1功能函数
{
switch(ch)
{
case '0':printf("0"); //如果为字符0,则打印字符0,但不跳出
case '1':printf("1"); //如果为字符1,则打印字符1,但不跳出
case '2':printf("2"); break; //如果为字符2,则打印字符2,跳出
case '3':printf("3"); //如果为字符3,则打印字符3,但不跳出
default:printf("9"); //如果为字符9,则打印字符9,但不跳出
}
printf("\n"); //换行
}
double f2() //f2功能函数
{
return (double)(5/2); //5除的2商,再转换为double类型
}
double f3(int n) //f3功能函数
{
if(n==1)return 1.0; //如果传递为1则返回1.0
else return 1.0+1.0/f3(n-1); //如果不为1,进行递归调用
}
main()
{
printf("%d %d\n",T('7'),T('a')); //打印字符7减去字符0的值,和-1,并换行
f1('1'); //打印字符1后,不跳出,又打印出字符2,并换行
printf("%0.1f\n",f2()); //返回2.0,固定值
printf("%.3f\n",f3(4)); //递归调用后,传递4打印出0.600。计算过的。
}
有不懂的地方随时回复我。
希望我的回答能帮助到你。
温馨提示:答案为网友推荐,仅供参考