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

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

新規登録して質問してみよう
ただいま回答率
85.35%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

C++

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

Q&A

1回答

1576閲覧

C++でコンパイルが通らない

cunwe

総合スコア65

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

C++

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

0グッド

0クリップ

投稿2020/10/26 14:55

#実現したいこと
VScodeからC++を実行できるようにしたいです。具体的にはこちらのコードを実行したいです。

#include <bits/stdc++.h> using namespace std; int main(){ int n,cnt; cin >> n; for (int i=0;i<n/2;++i){ for (int j=0;j<n/2;++j){ while ((n-i)%j==0){ cnt++; } } } cout << cnt << endl; }

#現状

line 6: 15640 Floating point exception: 8 $objfile

というエラーが出てしまいます。なぜ浮動小数点のエラーなのかそしてエラーの最後に$objfileと表示される理由がわからないです。
#試したこと
cpp.shで最後の行の$objfileを$./objfileにした
オプションの-oを単体でやってみた
#参考にしたサイト
こちらこちら

#ファイル構成
現在、各ファイルは以下のようになっております。以下の情報で解決方法が思い浮かびましたら教えていただけますと幸いです。よろしくお願いいたします。

c_cpp_properties.json

{ "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/**", "/usr/local/include/**" ], "defines": [], "macFrameworkPath": [], "compilerPath": "/usr/bin/g++", "cStandard": "c11", "cppStandard": "c++14", "intelliSenseMode": "gcc-x64" } ], "version": 4 }

settings.json

{ "files.associations": { "iostream": "cpp" }, "workbench.colorTheme": "Monokai Dimmed", "code-runner.runInTerminal": true, "workbench.sideBar.location": "left", "editor.suggestSelection": "first", "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", "code-runner.executorMap": { "cpp": "/Users/t.m./vsc_run/cpp.sh" } }

tasks.json

{ "version": "2.0.0", "tasks": [ { "type": "shell", "label": "g++ build active file", "command": "/usr/local/bin/g++", "args": [ "-std=gnu++17", "-g", "-Wall", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "/usr/local/bin" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true } }, { "type": "shell", "label": "clang++ build active file", "command": "clang++", "args": [ "-std=c++14", "-stdlib=libc++", "-x", "c++", "-Wall", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "--debug" ], "group": "build" }, { "label": "CheckTestCase", "type": "shell", "command": "cd ${fileDirname} && rm -f ${fileDirname}/${fileBasenameNoExtension} && g++ -std=gnu++14 ${fileBasename} -o ${fileBasenameNoExtension} && oj test -c \"${fileDirname}/${fileBasenameNoExtension}\" -d ${fileDirname}/tests/", "presentation": { "reveal": "always", "focus": true, "panel": "shared", } }, { "label": "SubmitCode", "type": "shell", "command": "cd ${fileDirname} && acc s ${fileBasename}", "presentation": { "reveal": "always", "focus": true, "panel": "shared", } }, ] }

cpp.sh

#!/bin/sh file=$1 objfile=`echo $file | sed 's/.[^.]*$//'` g++ -g -o $objfile $file $objfile

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

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

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

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

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

guest

回答1

0

コンパイルは通っていますね。これは実行時のゼロ除算例外によるクラッシュです。 Floating point exception と出ていますがこの場合は整数のゼロ除算が原因です。例えば以下のようなケースを見れば整数のゼロ除算でも同じメッセージが表示されることが分かると思います。
https://wandbox.org/permlink/HNfIv1IPxjGWN89m

cpp

1#include <iostream> 2 3int a = 0; 4 5int main(){ 6 std::cout << (1 / a); 7}

原因は (n-i)%j の部分ですね。 j は初期値が0なので最初は必ず (n-i)%0 が実行されることになります。

$objfile が出力されているのは、シェルが例外が発生した行のコマンドをそのまま表示しているからでしょう。

投稿2020/10/26 15:08

編集2020/10/26 15:10
kazatsuyu

総合スコア158

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

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

cunwe

2020/10/27 08:45

お答えいただきありがとうございます。ということはプログラムが悪いということでしょうか?
cunwe

2020/10/27 10:47

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問