c猴子吃桃问题,不用return的方式
1 #include <stdio.h>2 void taoziDay(int d);3 4 int main(void)5 {6 int day;7 //int taozi;8 scanf("%d",&day);9 //taozi = taoziDay(day); 10 //printf("%d",taozi); 11 return 0; 12 } 13 14 void taoziDay(int d) 15 { 16 int taozi; 17 18 if(d == 10) 19 { 20 taozi =1; 21 } 22 else 23 { 24 taozi=(taoziDay(d+1)+1)*2; 25 } 26 27 printf("%d",taozi); 28 }哪里出错了?
1 #include <stdio.h>
2 void taoziDay(int d);
3
4 int main(void)
5 {
6 int day;
7 //int taozi;
8 scanf("%d",&day);
9 //taozi = taoziDay(day);
10 //printf("%d",taozi);
11 return 0;
12 }
13
14 void taoziDay(int d)
15 {
16 int taozi;
17
18 if(d == 10)
19 {
20 taozi =1;
21 }
22 else
23 {
24 taozi=(taoziDay(d+1)+1)*2;
25 }
26
27 printf("%d",taozi);
28 }
你的void taoziDay(int d)的定义出现了思路上的错误!!!
知道你想用递归这样的方式求解,但你这不是!!
还有,你这函数没有返回值的,你调用后得不到结果!
14 int taoziDay(int d)
15 {
16 int taozi;
17
18 if(1==d)//这样写可以防止d=1这样的误写错误
19 {
20 taozi =1;
21 }
22 else
23 {
24 taozi=(taoziDay(d-1)+1)*2;
25 }
26
27 printf("%d",taozi);
28 }
页:
[1]