プロが教えるわが家の防犯対策術!

C++初心者です。以下の様なプログラムで、合計を求めたいのですが、あまり桁数の大きい数だと、正確な値がでません。(20桁とか・・・)これは一体どういうことが考えられますか?//配列の全要素の合計を求める
#include<iostream.h>


int main(void)
{
int i;
int a[5]={0}.;

cout<<"5個の整数値を入力しましょう。 \n";

for(i=0; i<5; i++)
{
cout<<"No."<<i+1<<": ";
cin>>a[i];
}
int sum=0;

for(i=0; i<5; i++)
sum=sum+a[i];


cout<<"合計は"<<sum<<"です。\n";

return(0);
}

A 回答 (2件)

合計を求める為に使っている変数 sum の型 int は、表現できる数値の


範囲が決っています。

使っている環境のマニュアルか、もしくは include/limits.h に
記述があるはずですが、int が4バイトであれば、最大の数値は
2147483647 です。

もし、20桁の数値を正確に計算したい、ということであれば、
「多倍長演算」という技術を使います。

C++ でも良いのであれば、それをサポートしたクラスが、探せば
いくつでも見つかるでしょう。そのうちのひとつを参考URLに
紹介しておきます。

参考URL:http://hp.vector.co.jp/authors/VA007799/bignum.htm
    • good
    • 0
この回答へのお礼

なんとなく仕組みがわかってきました。ありがとうございます。
返事おそくなってすみません。

お礼日時:2001/06/13 22:47

intの有効桁数を調べましょう。

    • good
    • 0
この回答へのお礼

調べてみます。ありがとうございました。

お礼日時:2001/06/06 17:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!