新手求助
#include<stdio.h>int calculate(int A , int B );
intRe();
charBool;
int main()
{
Bool='Y';
if(Bool=='Y')
{
Re();
}
else
{
return 0;
}
}
int Re()
{
Bool='N' ;
int a,b ;
printf("请输入两个数 进行相加:\n");
scanf("%d %d",&a,&b) ;
printf("计算结果为:%d \n",calculate(a,b)) ;
printf("想继续计算请输入Y 退出请输入N") ;
scanf("%c",Bool);
if(Bool=='Y')
{
Re();
}
}
int calculate(int A , int B )
{
int result ;
result= A +B;
return result;
}
为什么跳到我想再调用函数Re的时候就结束程序了 scanf("%c",Bool); ->scanf("%c",&Bool); 取地址符呢,哈哈,典中典了 慕道子 发表于 2021-9-28 22:16
scanf("%c",Bool); ->scanf("%c",&Bool); 取地址符呢,哈哈,典中典了
好像是这样的但他还是不触发scanf以及后面那个if直接就结束了 哈哈,抱歉,还有一个典中典。
由于Bool是字符型,所以scanf("%c",&Bool)直接接收缓冲区里的回车。可以加一个getchar()吸收回车。
具体的可以上去博客搜索一下详细原因。
#include<stdio.h>
int calculate(int A , int B );
intRe();
charBool;
int main()
{
Bool='Y';
if(Bool=='Y')
{
Re();
}
else
{
return 0;
}
}
int Re()
{
Bool='N' ;
int a,b ;
printf("请输入两个数 进行相加:\n");
scanf("%d %d",&a,&b) ;
printf("计算结果为:%d \n",calculate(a,b)) ;
printf("想继续计算请输入Y 退出请输入N\n") ;
getchar();
scanf("%c",&Bool);
if(Bool=='Y')
{
Re();
}
}
int calculate(int A , int B )
{
int result ;
result= A +B;
return result;
} 慕道子 发表于 2021-9-30 01:51
哈哈,抱歉,还有一个典中典。
由于Bool是字符型,所以scanf("%c",&Bool)直接接收缓冲区里的回车。可以加 ...
典中典中典
页:
[1]