求高手解答,为什么我输入一个特大的数,最后打印的也是一样的数?比如输入34567,打印的也是34567.

inthello(){inta;scanf("%c",&a);if(a=='6')return0;printf("%c",a);hello();printf("%c",a... int hello()
{
int a;
scanf("%c", &a);
if(a == '6') return 0;
printf("%c", a);
hello();
printf("%c", a);
return 1;
}

int main()
{
int a;
printf("please input a number:");
hello();
return 0;
}
答案被选为最佳,另有分送.
展开
Mickal小米
2012-03-06 · TA获得超过3667个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1908万
展开全部
main()函数的变量a和hello函数的变量a都是局部变量,互不影响。。。个人见解哈(个人对c++还有c#懂点,对c的理解也许会友偏差)我想可行的做法有二:1.将变量a作为全局变量2.hello函数的变量a作为hello函数的形参,实参为main函数中的变量a。
更多追问追答
追问
这个程序是什么意思,考察的是什么?特别是scanf("%c", &a),这句为什么要以%c来取值?
追答
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。
例如scanf("%d%d", &a, &b);   如果a和b都被成功读入,那么scanf的返回值就是2
%后跟的部分是转换字符,这里的c表示读单字符
这个程序考察的可能是参数的范围问题。程序的意思我也不是很明白,只知道如果输入的数字是6就返回,如果不是就递归,但有死循环的嫌疑。
aspwolf1470
2012-03-06 · TA获得超过2643个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:1344万
展开全部
经tc测试,输入34567打印出来的是345543,没有问题啊
追问
这个程序是什么意思,考察的是什么?特别是scanf("%c", &a),这句为什么要以%c来取值?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式