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

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

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

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

C++

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

Q&A

解決済

3回答

2161閲覧

t秒後のロケットの速度vを求める関数

jo-jo

総合スコア7

C

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

C++

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

0グッド

0クリップ

投稿2017/05/21 12:10

t秒後のロケットの速度を求める関数を作れという課題で、作って実行してみたところ、
05-3.exe は動作を停止しました。
問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合はWindows から通知されます。
と、表示され実行ができません。
どこが間違っているのでしょうか?よろしくお願いします。

#include<stdio.h>

float a = 0;

float velocity(float F, float m, int t){

float a = F/m; float v = a*t; return v;

}

float main(void)
{
float m = 0;
float F = 0;
int t = 0;
printf("速度0で静止しているロケットに点火して打ち上げる。\n打ち上げからt秒後の速度V(t)を求める。\n");
printf("ロケットの質量 m=");
scanf("%f,&m");
printf("ロケットの推力 F=");
scanf("%f",&F);
printf("時間 t=");
scanf("%d",&t);

printf("打ち上げからt秒後の速度は%fです。",velocity(F,m,t));

}

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

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

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

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

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

cateye

2017/05/21 13:58

環境(コンパイラなど)を教えてください。デバッグ時にはどこでエラーが出ますか?
jo-jo

2017/05/21 14:26

Borland C++ Compiler 5.5 を使っています。コマンドプロンプトで値を入れて実行するとエラーが出ます。デバックのやり方がわからないです、、、
guest

回答3

0

ベストアンサー

1回目のscanfがおかしいですね。
他は大丈夫だと思います。

c

1 scanf("%f,&m"); 23 scanf("%f",&m); 4

投稿2017/05/22 00:03

ttyp03

総合スコア16998

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

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

0

2回目以降のscanf()「scanf("%f",&F);、scanf("%d",&t)」は正常に読み込めていますか?←printf()などを挿入して、結果を表示してみましょうd^^

投稿2017/05/21 20:58

cateye

総合スコア6851

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

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

cateye

2017/05/21 21:01

scanf()は使い方が難しい関数です。私の場合は、fgets()→sscanf()を使います。
guest

0

計算方法が正しいかについてはご本人に考えていただくとして、
文法上おかしな所を指摘してみました。

C

1#include <stdio.h> 2 3// velocity関数のプロトタイプ宣言 <= C++では無いとエラーになる 4float velocity(float F, float m, int t); 5 6// float a = 0; <= velocity関数内でaが宣言されているのでこれは不要 7float velocity(float F, float m, int t) 8{ 9 float a = F / m; 10 float v = a * t; 11 12 return v; 13} 14 15int main() // <= main関数の戻り値はint, 引数を使わないなら空ける(voidは間違い) 16{ 17 float m = 0.0f; 18 float F = 0.0f; 19 int t = 0; 20 21 printf("速度0で静止しているロケットに点火して打ち上げる。\n打ち上げからt秒後の速度V(t)を求める。\n"); 22 printf("ロケットの質量 m = "); 23 scanf("%f", &m); // <= format(%f)と変数(&m)は別の引数 24 ...(中略) 25 26 printf("打ち上げからt秒後の速度は%fです。\n", velocity(F, m, t)); 27}

変数名はmとかtみたいに1文字だとわかりにくいのでmassとかsecとか意味のある単語に変える
特に理由が無ければfloatと%fじゃなくdoubleと%lfを使ったほうが良いかと思います。

投稿2017/05/21 14:03

編集2017/05/21 14:15
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

jo-jo

2017/05/21 14:42

指摘ありがとうございます!! 引数や戻り値の使い方がまだまだあやふやで基本的なことができていないので、指摘されたところを改善していきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問