ページ 11

大きな数を入力するとエラーになる

Posted: 2016年6月19日(日) 21:57
by 助けてもらいたい

コード:

#include <iostream>
#include <algorithm>
#include <iomanip>
#include <string>
#include <cmath>
using namespace std;
int main(){
	int a,n,max,goukei;
	int min = 999999999;
	int array[1000000];
	cin>>n;
	for(;;){
		for(a=0; a<n; a++) cin>>array[a];
		int max = array[0];
		for(a=0; a<n; a++) if(array[a] > max)max = array[a];
		for(a=0; a<n; a++) if(array[a] < min)min = array[a];
		for(a=0; a<n; a++) goukei += array[a];
		
	cout<<min<<" "<<max<<" "<<goukei<<endl;
	break;
}

		return 0;
}

よろしくお願いします

Re: 大きな数を入力するとエラーになる

Posted: 2016年6月19日(日) 21:59
by 助けてもらいたい
入力は
[url]
file:///Users/daiki/Downloads/ITP1_4_D_in19.txt.html
[/url]
です

Re: 大きな数を入力するとエラーになる

Posted: 2016年6月19日(日) 23:02
by box
はて、どんな大きい数を入力したときにどんなエラーが出るのでしょう。
そこがわからないことには、いかんともしがたいです。

とりあえず、goukeiは0で初期化しておくのがまっとうでありましょう。

Re: 大きな数を入力するとエラーになる

Posted: 2016年6月19日(日) 23:28
by みけCAT
大きい配列を自動変数として静的に確保すると、スタックオーバーフローを起こすことがあります。

Re: 大きな数を入力するとエラーになる

Posted: 2016年6月20日(月) 21:05
by 助けてもらいたい
box さんが書きました:はて、どんな大きい数を入力したときにどんなエラーが出るのでしょう。
そこがわからないことには、いかんともしがたいです。

とりあえず、goukeiは0で初期化しておくのがまっとうでありましょう。
入力は先述した通りです
よろしくお願いします

Re: 大きな数を入力するとエラーになる

Posted: 2016年6月20日(月) 21:58
by muzukasii
助けてもらいたい さんが書きました:入力は
[url]
file:///Users/daiki/Downloads/ITP1_4_D_in19.txt.html
[/url]
です
この書き方では何もいえません。ITP1_4_D_in19.txtファイルの中身をすべて書き出すorこぴぺしてはることをお勧めします。

また、
int array[1000000];
でarrayという名前の配列の大きさを1000000と定めているので、
 cin>>n;
でコンソールに打ち込むnの数が1000000以上だとエラーになると思います。

Re: 大きな数を入力するとエラーになる

Posted: 2016年7月14日(木) 19:01
by 救世主
int型ではなくlong long型にしてみては?

Re: 大きな数を入力するとエラーになる

Posted: 2016年7月14日(木) 19:02
by 助けてもらいたい
ありがとう!