- ベストアンサー
教えてください。
普通にint main (void) return 0 のように1つのプログラムなら出来るんですが 以下の問題になると訳が分かりません。 正しいプログラムを載せて頂くと助かります。 2つの実数a,bを入力して大きい値を返すプログラムを作れ。 ただし、プログラムはデータ入力がある間くり返されるようにする。また、a,bを引数として与え、大きい方の数を返す関数を作ること。 float Func1(float,float);このような関数プロトタイプ プログラムは2つのソースプログラムに分けて作ること。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こういった場合は ヘッダーファイルx1 ソースファイルx2といった構成にします 外部関数宣言 --- Func1.h float Func1(float, float); メインプログラム --- Main.cpp #include <stdio.h> #include "Func1.h" void main() { float a,b; float max; while (scanf("%f %f",&a,&b)!=EOF){ max = Func1( a, b ); printf( "%f\n", max ); } } 外部関数の実装 ---- Func1.cpp #include "Func1.h" float( float x, float y ) { return ( x >= y ) ? x : y; } といった具合でしょう cc -o sample main.cpp func1.cpp といった具合に main.cppとfunc1.cpp2つのソースを与えてコンパイル/リンクを行います
その他の回答 (2)
- wathavy
- ベストアンサー率22% (505/2263)
>>プログラムは2つのソースプログラムに分けて作ること。 >これはちょっと・・・意味がよくわかりません。 >関数を作ればよいのか、ファイルを分ければよいのか・・・ >たぶんファイルを分けるのでしょうが・・・ 関数を呼び出すメインのファイルと、 関数を書いた関数ファイルを分離して書いてという意味だと想像します。 関数のヘッダーをIncludeさせたいのではないでしょうか?
- orayama
- ベストアンサー率22% (13/59)
宿題か何かですか? 言語はC言語と捉えて回答させていただきます。 単にソースを載せても勉強にならないと思いますので、ヒントだけ。 >2つの実数a,bを入力して大きい値を返すプログラムを作れ。 if文を使います。 if(aがbよりも大きいならば{}の中へ) { (大きい値を返す) } >ただし、プログラムはデータ入力がある間くり返されるようにする。 データ入力はどうやって取得すればよいのか? 【C言語 標準入力】で検索してみてください。 さらに繰り返しは、while文を利用します。たとえば、 while(標準入力で取得した値が存在するならば{}の中へ) { (前述のif文) } >プログラムは2つのソースプログラムに分けて作ること。 これはちょっと・・・意味がよくわかりません。 関数を作ればよいのか、ファイルを分ければよいのか・・・ たぶんファイルを分けるのでしょうが・・・ 参考URL載せときます。
補足
説明不足で申し訳ありません。 プログラムを2つのソースプログラムに分けて作れ。 先生に聞いたら「それぞれのプログラムを個々にコンパイル、リンクして実行プログラムを作るんだよ」と言われました。 #include <stdio.h> main() float Func1(float,float); float a,b; float max=Func1(a,b); while (scanf("%f %f",&a,&b)!=EOF){ if(max==1) { printf("%f\n",a); } else { printf("%f\n",b); } } } ここまで出来たんですが、 if文(a>b)は関数のプログラムの方で書くそうです… 関数のプログラムの書き方がイマイチ分かりません。