c++循环控制结构中的随机数问题,运行时出现了负数?

c++循环控制结构中的随机数问题,运行时出现了负数?
求Sn=a+aa+aaa+aaa+⋯aa⋯aaa(n个a),其中a是一个由随机数产生的1~9(包括1,9)中的一个正整数,n是一个由随机数产生的5~10中的一个正整数.运行第二次时出现sn<0的情况.

(如图)

嗯,大家回答都集中在超过最值出现负数这件事上,这个我明白了.但是如果这个程序是对的的话结果根本不该超过最大值的.所以有木有大神能讲下哪里写错了.
ppasos216 1年前 已收到1个回答 举报

深海明珠 幼苗

共回答了18个问题采纳率:94.4% 举报

这应该是 溢出了.int 存不了那么大值
把temp类型 改为 long,再不行就用double

1年前 追问

6

ppasos216 举报

溢出是因为答案错了呀,算出的Sn和计算器算出的不一样,本来不应该溢出的.....

举报 深海明珠

int 的容量有限,你的数应该很大,存不了,就是溢出

ppasos216 举报

哎,我的意思是我这个程序本身还有问题,即使改了double不溢出也是错的,但我没弄明白应该怎么改成对的。比如a=2,n=5时,sn应该几万,但是用我这个算出来就不是那个数。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 1.475 s. - webmaster@yulucn.com