質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

3830閲覧

C++の問題で実行時エラーになってしまいます。

wanntinntyann

総合スコア12

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/10/03 03:08

http://abc045.contest.atcoder.jp/tasks/arc061_a
というプログラミング練習サイトのこの問題をやっていて、全数探索のプログラムで、文字列が10,9を超える時実行時エラーになってしまいます。原因がよくわからないのでエラーの原因がわかりそうな方がいたら教えてください。

#include <iostream> #include <cmath> #include <ctime> #include <algorithm> #include <stdio.h> #include <string> #include <string.h> #include <stdlib.h> #include <sstream> #include <vector> #include <map> #include <fstream> using namespace std; typedef long long int ll; const int N = 100; void dfs(int n, int x, string str); ll sum = 0; string S; bool Visit[N]; int main() { cin >> S; int len = S.length(); dfs(len, 0, S); sum += stoi(S); cout << sum << endl; return 0; } void dfs(int n, int x, string str) { string S2 = ""; if (x > 0) { for (int i = 0; i < n; i++) { S2 += str[i]; if (Visit[i]) { cout << S2 << " "; sum += stoi(S2); S2 = ""; } } if (S2.length() > 0) { cout << S2 << endl; sum += stoi(S2); } } if (x >= n) { return; } else { for (int i = x; i < n - 1; i++) { if (!Visit[i]) { Visit[i] = true; dfs(n, x + 1, str); Visit[i] = false; } } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

stoiの返り値はintです。
stollを試してみてください。

投稿2016/10/03 03:23

ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wanntinntyann

2016/10/03 03:29

stollで試してみましたがこれも実行時エラーになってしまいました。
wanntinntyann

2016/10/03 03:40

stollでいろいろ試したら出来ました。ベストアンサーは最初にstollを教えてくれたishiさんにしました。
guest

0

10桁の十進数は31bitを超えるんで(signed) intでは溢れるんちゃいますか?

投稿2016/10/03 03:18

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wanntinntyann

2016/10/03 03:20

long long int と宣言してます。doubleで試してもエラーでした。
episteme

2016/10/03 03:22

あ、失礼。 で、どの行で実行時エラーになるんですか? どんな実行時エラーですか?
wanntinntyann

2016/10/03 03:24

- abort() has been called というやつです。
episteme

2016/10/03 03:34

sum += stoi(S2); てとこがありますよね。 このstoiはintを返すので、S2が10桁超えたあたりでコケません?
wanntinntyann

2016/10/03 03:40

そのあたりでおかしくなってましたね。直りました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問