c语言输入负数 为什么我这个程序输入正确数后 结果总为负数

求助关于C语言 为什么下边这个程序输出会有负数_百度知道C语言 2版 课后答案 三章_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言 2版 课后答案 三章
上传于||文档简介
&&c​语​言​程​序​设​计​教​程​ ​课​后​习​题​答​案​ ​二​版​ ​第​三​章
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢这是小弟我用递归法写的计算一个整数的位数,和个位数字之和,编译成功,可是结果总是不对,尤其当输出的数字过大的时候,还输出负数。自学中吗,还请多多指教 - C语言当前位置:& &&&这是小弟我用递归法写的计算一个整数的位数,和个位这是小弟我用递归法写的计算一个整数的位数,和个位数字之和,编译成功,可是结果总是不对,尤其当输出的数字过大的时候,还输出负数。自学中吗,还请多多指教&&网友分享于:&&浏览:19次这是我用递归法写的计算一个整数的位数,和个位数字之和,编译成功,可是结果总是不对,尤其当输出的数字过大的时候,还输出负数。自学中吗,还请多多指教#include&stdio.h&
int&num(int&n)
&if(n/10&1)
&return&1;
&return(&1+num(n/10));
&int&sum(int&n)
&&&if(n/10&1)
&&&return&n;
&&&return&((n%10)+&num(n/10));}
&&&int&main()
&&&{&int&n;
&&&&&scanf("%d",&n);
&&&&&printf("num=%d\nsum=%d",num(n),sum(n));
&&&&&getchar();getchar();}------解决方案--------------------别用int或者long,大小有限制,用字符串吧,多长都行(不超过MAX_LEN就行)
#include&&stdio.h&
#include&&stdlib.h&
#include&&string.h&
#define&MAX_LEN&500
long&compute(char&s[],int&n)
&&&&if&(n&0)
&&&&&&&&return&(s[n-1]-'0')+compute(s,n-1);
&&&&&&&&return&0;
int&main()
&&&&int&num,&
&&&&char&s[MAX_LEN];
&&&&printf("Please&input&a&number:\n");
&&&&scanf("%s",&s);
&&&&len&=&strlen(s);
&&&&printf("Sum&is&%ld\n",compute(s,len));
&&&&return&0;
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有:刚学C语言,题目:从键盘输入一个小于1000的正数,要求输出它的平方根,如果平方根不是整数,则输出其整数,运行结果是负数
两个执行窗口,在第二个窗口输入第二次正数,得到的结果为负数?请问是什么原因?谢谢各位大神!
回复讨论(解决方案)
前面输入大于1000,直接执行if语句
else跳过去了,没有执行,所以看起来怪数字,实际是因为b没有初始化。
你要把开放放在else的外面。不要放在else里面
11:10&&&[]
我写的一个游戏需要求整数的平方根,不知道求平方根的算法,请各位老大帮忙
回复讨论(解决方案)
int&i&=&25;
Math.pow(i,&.5)
这个比较好
int&i&=&25
18:17&&&[]
我想请问我划红的那条语句答案给出的解释是试除,可是我实在没看出来它有什么用,请赐教。
题目是:某16位二进制数,放在变量名为DATA开始的连续两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。
答案给出的源程序是:
DATA&&&nbsp
17:36&&&[]
&&&大家好,我想问:假如一个数十分大,不能用java中的任何数据类型装得下,我想求这个数的平方根,怎么解决?
回复讨论(解决方案)
double八个字节。那么大的数还装不下么。。?
不能,假如这个数是十分大,不能用java中的任何数据类型装得下
01:02&&&[]
&span style=&font-size:14&& &/span& 今天在图书馆借了一本《高效能程序员的修炼》,内容幽默风趣。(其实我是看到作者是stack overflow创始人,才借的)。看到几十页中有一个例子是关于求平方根的,代码很简单
16:37&&&[]
return 1/x;
} //实现平方根的倒数 float InvSqrt(float x) { float xhalf = 0.5f*x; int i = *(int*)&x; & & &// get bits for
10:20&&&[]
: Author: Driver Monkey Version: Mail: qq: Date:
Description: 递归练习之求平方根
23:17&&&[]
; return&g0;
& & 算法3&逐比特确认法 &&&逐比特确认法认为一个32位整数求根,结果应该是一个16位整数。求这个16位整数,其实质是确认每位的比特是0还是1.我们把这个根分为两个相加的部分,一部分是已确认的值
09:47&&&[]
值。那么其计算的迭代过程为: 1.如果猜测值g已经足够接近于正确的平方根,算法结束,函数将g作为结果返回。 2.如果猜测值g不够精确,那么使用g和x/g的平均值作为新的猜测值。因为这两个值中的一个小于确切的平方根,另一个则大于确切的平方根,选择平均值有助于你得到一个更接近于正确答案的值。 3.把新的
19:28&&&[]
请高手指点一下!重写一个sqrt()--求一个32位的整数的平方根的算法,开根号后是一个16位的int&型~!!请高手帮个忙哈!分数会给大家的!
回复讨论(解决方案)
主要思想:设要求的这个数为a,它的平方根为x;然后我们一开始令x=a;然后我们进入一个循环,不断的令x
18:48&&&[]
前几天看见了一个来自雷神之槌的平方根源码,原理多方有介绍,不赘述。 源码是c语言写的,我思考后发现这样的算法在javascript中也是可以完成的。
function InvSqrt(x){ var h=0.5*x; var b=new ArrayBuffer(4); var d=new
16:26&&&[]
;);&&&&printf(&sqrt(%g)=%g\n&,a,x1); } 运行结果如下:
10:55&&&[]C语言中三个数相乘后求指数哪里输错了,为什么得出的结果变负数_百度知道}

我要回帖

更多关于 c语言负数怎么表示 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信