扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、只能是在程序里判断‘-’这个字符。你需要能够判断出‘-’是一个减号还是一个负号。比较简单的方法是,输入计算式时你规定好格式,负数一律用()括起来。这样比较容易判断是不是负数。当然你也可以定义其它的格式。
10年积累的网站设计、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有庄浪免费网站建设让你可以放心的选择与我们合作。
2、出现负数,是因为奇数、偶数的和太大,超过了long(长整型)类型的最大值了。个数是对的,0-151554545共有151554546个数,其中奇数偶数各有75777273个。
3、可能与你scanf函数中格式控制符中的“.”有关,一般情况下,格式控制符之间最好不要有这种分隔符,如果需要,在输入数据时也必须原样加上。
4、两种解决方法,你自己选择一种:把long x,y;改成int x,y;把所有的%ld改成%d 把函数定义语句改为long fun(long x)如果有不明白之处,请留言。
5、个数是对的,0-151554545共有151554546个数,其中奇数偶数各有75777273个。
1、你先添加一个正负检验函数,就是看字符串第一个是不是“-”号,然后如果是,就相应的执行相反的函数就行,是加法检测到“-”号直接调用减法运算,这是一个办法。
2、其中奇数偶数各有75777273个。至于for不动了,是for循环进入死循环了,你的编译器中int是2bytes,最大值为32768,当i加到32769的时候,就越界了,成为负数,所以i永远不会大于你输入的151554545这个数值,所以死循环。
3、试了一下,b 为0 或 为 负 可以 得结果,所以就不细查程序了。
4、if(n=0)这里写错了 应该是 if(n==0)否则n会被赋值为0,这个判断永远无法执行,而下面的分支会出现除0错误。
5、while(n0)的循环体里有exit(0);会让程序退出,在这里效果等同于return 0;所以后面的语句都不会继续执行。所以这个答案是可行的。不过个人觉得while(n0)改成if(n0)比较好。
1、把long x,y;改成int x,y;把所有的%ld改成%d 把函数定义语句改为long fun(long x)如果有不明白之处,请留言。
2、可能与你scanf函数中格式控制符中的“.”有关,一般情况下,格式控制符之间最好不要有这种分隔符,如果需要,在输入数据时也必须原样加上。
3、求阶乘没必要弄这么复杂,你非要用递归算法求阶乘也行,问题出在输入负数时,要有c语言终止程序的代码。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流