首先最重要的一点,问问题的方式不对——你上来都没有说清楚你的问题到底是什么,让别人本来想给你解答都无从下手。
那我退一步,跑了一下你的程序,发现这么几点问题:
(1)scanf到变量b没有加取地址符号&
(2)按照你这个代码的意思0天以下和10天以上都是不允许的输入情况,那么你应该都给考虑到才对
(3)当n<0时,你想输出“错误输入”,但实际上你并没有实现这个功能,当控制台输入一个0时,它不但会把“错误输出”输出出来,还会再输出个0
(4)代码混乱,不美观
这些问题我大概给你简单的改动了下代码,如下:
程序代码:
#include <stdio.h>
int taozi(int n)
{
int t;
if(n<0 || n>10)
return 0;
else if(n == 10)
t = 1;
else
t = (taozi(n+1)+1)*2;
return t;
}
int main()
{
int b,c;
printf("请输入天数:");
scanf("%d",&b);
c = taozi(b);
if(c)
printf("%d\n",c);
else
printf("错误输出");
return 0;
}