浙大版《C语言程序设计(第3版)》题目集
练习2-17 生成3的乘方表 (15 分)
输入一个非负整数n,生成一张3的乘方表,输出3
0
~3
n
的值。可调用幂函数计算3的乘方。
输入格式:
输入在一行中给出一个非负整数n。
输出格式:
按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。
输入样例:
3
输出样例:
pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27
正式版本
#include <stdio.h>
#include<math.h>
void f(int b,int x){
int a;
if(b<=x){
a=pow(3,b);
printf("pow(3,%d) = %d\n",b,a);
b++;
printf("in %s,b=%d\n",__func__,b);
f(b,x);
}
}
int main(){
int n=0,x=0;
scanf("%d",&x);
f(n,x);
printf("in %s,n=%d\n",__func__,n);
return 0;
}
想法: 尝试了用递归进行输出
结论:如果是在递归中,传过来的值会继续变化,因为还在块内,直到跳出函数,这个变量值才会消失
另外 int函数返回值是返回给 函数名 值