C语言getchar问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 08:56:14
# include<stdio.h>
int hermit(int,int);
int main()
{ int temp;
int i;
int j;
i=getchar();
j=getchar();
printf ("%c%c",i,j);
temp=hermit(i,j);
printf("%d",temp);
getch();

}
int hermit(int n,int x)
{
if(n<=0)
{return 1;}
else if(n==1)
{return 2*x;}
else return 2*x*hermit(n-1,x)-2*(n-1)*hermit(n-2,x);
}
为什么getchar已经将值赋给i ,j了 而hermit函数无法使用

这位同学,你犯了一个很严重的错误, getchar()是获取一个字符,如果你输入1,实际上获取的是1的ASCII码值, 而不是数值1本身. 所以你应该把程序改一下:

把main()改成如下就可以了:
int main()
{
int temp;
int i;
int j;
printf("Please input i:");
scanf("%d",&i);
printf("Please input j:");
scanf("%d",&j);

temp=hermit(i,j);
printf("%d",temp);

getchar();
}

能说一下你的递归函数是算什么的么。便于分析……

帮你回答