前提・実現したいこと
プログラミング&テラテイル初心者です。C言語で簡単な物理の方程式を解くプログラムを作ろうとしています。開発にはVisual Studio 2017を使っています。
発生している問題・エラーメッセージ
エラーは出ませんでした。
Borland BCC32やOnlineGDBでは問題なく作動、Visual studioでも一応コンパイルはできます。ただしVisual Studioでコンパイルさせた時だけうまく動きません。
具体的には「プログラムの続行を問う」ところで、if文がうまく動かないようです…
該当のソースコード
C言語
1void VelocityCalc() { 2 do { 3 4 //以下、演算パートです 5 printf("\n\nWhat is initial velocity[u]?: "); 6 scanf("%lf", &u); 7 8 printf("\n\nWhat is acceleration[a]?: "); 9 scanf_s("%lf", &a); 10 11 printf("\n\nWhat is time[t]?: "); 12 scanf_s("%lf", &t); 13 14 v = u + a * t; 15 16 //演算結果と続行の是非を問います。このあたりからうまく動きません。 17 printf("\n\nResult: v = %f\n\nDo you want to calculate another velocity?[Y/N]", v); 18 scanf_s("%s", &con); //続行の是非をYかNで入力します。conはchar型のグローバル変数です。 19 20 //yが入力されたとき、constatに1を代入してdo-whileを継続します。 21 if (con=='y') { 22 printf("\n\nSTH"); //if文が動作しているか確認のためにprintfを置きました 23 constat = 1; 24 } 25 26 //nが入力されたとき、constatに0を代入してdo-whileを抜け出します。 27 if (con=='n') { 28 constat = 0; 29 } 30 } while (constat); //constatの真偽値でdo-whileの動作を決定します。 31 32 NewtonLauncher(); //メニュー画面を表示する関数に飛びます。この関数自体はちゃんと動きます... 33}
試したこと
Visual Studioにあまり慣れていないので、ほかのコンパイラも試しましてみました。
そちらの方ではscanf_sが使えないような感じなので、すべてscanfに戻してからコンパイルしました。
補足情報(FW/ツールのバージョンなど)
Visual Studio Community 2017
全体のコードはこちらです...
https://www.onlinegdb.com/online_c_compiler
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/29 04:40
2018/03/29 04:42
2018/03/29 04:45
2018/03/29 04:59
2018/03/29 07:17
2018/03/29 07:19