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

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

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

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

Q&A

解決済

6回答

972閲覧

コンソールが瞬時に消えます

cand

総合スコア65

C++

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

0グッド

0クリップ

投稿2018/12/01 12:29

c++

1#include<iostream> 2#include<vector> 3using namespace std; 4 5vector<int>ans; 6int dp[5010]; 7int a[5010]; 8 9int main() { 10 int n; 11 while (true) { 12 cin >> n; 13 for (int i = 0; i < n; i++) { 14 dp[i] = 0; 15 } 16 if (n == 0) { 17 break; 18 } 19 for (int i = 0; i < n; i++) { 20 cin >> a[i]; 21 } 22 for (int i = 0; i < n; i++) { 23 if (a[i] > 0) { 24 dp[i + 1] += dp[i] + a[i]; 25 } 26 else { 27 dp[i + 1] = dp[i]; 28 } 29 } 30 ans.push_back(dp[n]); 31 } 32 for (int i = 0; i < int(ans.size()); i++) { 33 cout << ans[i] << endl; 34 } 35 return 0; 36}

上のコードを実行し、入力すると一瞬でコンソールが消えます。まったく原因がわかりません。どなたかデバッグをお願いします。

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

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

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

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

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

cateye

2018/12/01 12:43 編集

cin >> n;での入力待ちが起らないのですか?・・・「入力すると一瞬でコンソールが消えます。」見落としていました、失礼しました。
cand

2018/12/01 12:42

そうではなく、入力してenterを押すと消えます
cateye

2018/12/01 12:48

>入力して・・・何を入力していますか? cout<<n;で表示できませんか?
makaroni

2018/12/02 10:56

Visual Studio を使っていますか?
guest

回答6

0

ベストアンサー

これでできると思いますよ!
VSをお使いでしたよね?
でしたら、まずいつもどうりにプロジェクトを開きます。

そして上のバーにある「プロジェクト」を開き(開く前にソリューションエクスプローラのプロジェクトを選択しておく)
画像の青い部分(しつこいようならすいません)
青い部分
一番下の「プロパティ」を開きます。
次に、「リンカー」の「システム」を開き一番上の「サブシステム」の下矢印?を開き、一番上の「コンソールなんちゃら」を選択し、適用させるといけると思います!

投稿2018/12/03 09:35

makaroni

総合スコア24

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

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

cand

2018/12/04 06:37

ありがとうございます。 解決しました。
guest

0

main関数の一番最後を次のようにすればすぐには消えなくなります。

C

1 2 ::system("pause"); 3 return 0; 4}

投稿2018/12/03 08:30

PineMatsu

総合スコア3579

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

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

0

とりあえず、コンパイル&実行は出来ていますが・・・何をしたいか解らないw

cpp

1 2#include <iostream> 3#include <vector> 4using namespace std; 5 6vector<int> ans; 7int dp[5010]; 8int a[5010]; 9 10int main() 11{ 12 int n; 13 while (true) { 14 cin >> n; 15 cout << n << endl; 16 if (n == 0) { 17 break; 18 } 19 for (int i = 0; i < n; i++) { 20 dp[i] = 0; 21 } 22 for (int i = 0; i < n; i++) { 23 cin >> a[i]; 24 } 25 for (int i = 0; i < n; i++) { 26 if (a[i] > 0) { 27 dp[i + 1] += dp[i] + a[i]; 28 } else { 29 dp[i + 1] = dp[i]; 30 } 31 } 32 ans.push_back(dp[n]); 33 } 34 for (int i = 0; i < int(ans.size()); i++) { 35 cout << ans[i] << endl; 36 } 37 return 0; 38} 39

usr~/test/cpp % c++ tcp.cpp
tcp.cpp:5:13: warning: no previous extern declaration for non-static variable 'ans'
[-Wmissing-variable-declarations]
vector<int> ans;
^
tcp.cpp:5:13: warning: declaration requires an exit-time destructor [-Wexit-time-destructors]
tcp.cpp:5:13: warning: declaration requires a global destructor [-Wglobal-constructors]
tcp.cpp:6:13: warning: no previous extern declaration for non-static variable 'dp'
[-Wmissing-variable-declarations]
int dp[5010];
^
tcp.cpp:7:13: warning: no previous extern declaration for non-static variable 'a'
[-Wmissing-variable-declarations]
int a[5010];
^
tcp.cpp:34:21: warning: implicit conversion changes signedness: 'int' to
'std::vector::size_type' (aka 'unsigned long') [-Wsign-conversion]
cout << ans[i] << endl;
~~~ ^
6 warnings generated.
usr~/test/cpp % ./a.out
3
3
1
2
3
0
0
6
usr~/test/cpp %

投稿2018/12/01 13:04

cateye

総合スコア6851

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

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

0

手元のVisual Studio2017で実行したところ、入力は受け付けました。(0を入力)
コンソールの立ち上げはCtrl+F5でやられてますか?
デバックなしで開始すると落ちないかもしれません。

投稿2018/12/01 12:54

編集2018/12/01 12:59
sumikko6210

総合スコア138

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

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

0

ダブルクリックでプログラムを起動した場合、コマンドが終了するとコンソールも終了します。
コンソールを開いて、コマンドラインからプログラムを実行して下さい。

投稿2018/12/01 12:35

hichon

総合スコア5737

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

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

0

Explorerでダブルクリックで実行していませんか?その場合は、プログラムが終了するとコンソールは自動で閉じます。

コマンドプロンプトを開いて、EXEファイル名を指定して実行しましょう。

投稿2018/12/01 12:34

otn

総合スコア84538

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

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

cand

2018/12/01 12:37 編集

IDE(VS2017)から実行しています。 これまでこのようなことはありませんでした。
cateye

2018/12/01 12:46

VSならfor (int i = 0; i < n; i++) あたりにBP張ってデバッグできないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問