宿題をやっておりまして・・・・・。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

宿題をやっておりまして・・・・・。

#1

投稿記事 by » 16年前

はじめまして、孫です。
宿題のことで分からないところが出てきてしまって、
途中までやって見たのですが、先生の話が飛びすぎてて、まだわからないところが出てしまい、
知ってる物の中で頑張ってはいるのですが、やはりわからなくてみなさんに、
力を貸していただこうと、来たわけです。

その宿題がこれです。
入力された2つの実数を比較し、大きい値を返す関数(関数名 fmax)を使ったプログラムを作成しなさい。
#include<stdio.h>
①_______ fmax(②_______,③_______);
void main(void)
{
  double a,b,max;
  printf("2つの実数を入力してください");
  scanf("④_______",⑤_______,⑥_______);
  
  max=fmax(⑦_______,⑧_______);

  printf(" %fのほうが大きい。\n",⑨_______);

}
double fmax(⑩_______ x,⑪_______ y);
{
  double z;
  if(⑫_______){
          ⑬_______;
}
  else
          ⑭_______;

  ⑮_______ z;
}
①void          ②double
③double        ④%f,%f
⑤&a            ⑥&b
⑦a             ⑧b
⑨max           ⑩double
⑪double        ⑫max<z
⑬max=max+z     ⑭?????
⑮return
①~⑨はこれでいいと思うのですが、⑩~⑮があまりに分からないので、
分からないなりに描いてみたのですが、どうでしょうか。

どうかお力を貸していただけないでしょうか。

lbfuvab

Re:宿題をやっておりまして・・・・・。

#2

投稿記事 by lbfuvab » 16年前

すいませんが
double fmax(⑩_______ x,⑪_______ y);

{

  double z;

  if(⑫_______){

          ⑬_______;

}

  else

          ⑭_______;



  ⑮_______ z;

}
このあたり打ち間違えてますよね。多分。

Re:宿題をやっておりまして・・・・・。

#3

投稿記事 by » 16年前

double(⑩_______ x,⑪_______ y);

ではなく

double(⑩_______ x,⑪_______y)
でしたすいません。

SCI

Re:宿題をやっておりまして・・・・・。

#4

投稿記事 by SCI » 16年前

①から順番に見直してみた方がよさそうです。
宿題ということなので、あえて答えは書きませんが・・・

Re:宿題をやっておりまして・・・・・。

#5

投稿記事 by » 16年前

そうですか。最初っからですか。
自分の宿題なんで、
一から頑張ります

box

Re:宿題をやっておりまして・・・・・。

#6

投稿記事 by box » 16年前

>①_______ fmax(②_______,③_______);

このプロトタイプ宣言と

>double(⑩_______ x,⑪_______y)

この実体定義において、関数名、戻り値の型、全引数の型が
一致している必要があります。よって、

>①void

これは正しくありません。

>④%f,%f

double型の入力を受け取る書式文字列は、%fではありません。
似てますけれど。

>⑫max<z
>⑬max=max+z

fmax関数では、maxという変数は定義していません。
引数で受け取ったx, yの大小を比べて、大きい方をzに代入してください。


木霊

Re:宿題をやっておりまして・・・・・。

#8

投稿記事 by 木霊 » 16年前

 まだ見てますかね?
 関数部分のヒント。

 とりあえず、今のままでは関数fmaxが2種類あることになります。・・・1番
 そして、その関数fmax内にはmaxという変数は存在していません。・・・12、13番

kazuoni

Re:宿題をやっておりまして・・・・・。

#9

投稿記事 by kazuoni » 16年前

・プロトタイプ宣言(関数原型宣言)
・有効範囲

などをググると参考になるかと思います。



今は条件演算子なんて流行ではないのですかね^^;
自分たちの大学では特別授業で扱いませんでしたが。

あ、明けましておめでとうございます。
今年もよろしくお願いします。
管理人さんの安否が心配です・・・。
ページ更新してる場合じゃ・・・^^;

SCI

Re:宿題をやっておりまして・・・・・。

#10

投稿記事 by SCI » 16年前

> 今は条件演算子なんて流行ではないのですかね^^;
三項演算子のことですか?あれは賛否両論ですよね。

ところでスレ主さん
ちょっと添付ファイルを見てくださいな
べ、別に私はツンデr(ry

Dixq (管理人)

Re:宿題をやっておりまして・・・・・。

#11

投稿記事 by Dixq (管理人) » 16年前

あけましておめでとうございます^^

>kazuoniさん
ご心配おかけしました,生きておりますw

>孫さん
コンパイラはパソコンに入っていますか?
宿題を紙の上だけで解こうとしていませんか?
わからないことがあればとにかくプログラムを実行させてみることです!
また,とけそうにない問題も少しずつ分解してとくことで解ける事が多いです。

変数の中身を表示するプログラム
さらにキーボードから変数の中身を入力させるプログラム
さらにこれらの変数の大小を比較するプログラム
さらに大小を比較する部分を関数分けして書いたプログラム

そんな感じで少しずつ作っていけば作れると思います。
とりあえず,宿題の事はおいておいて,
「入力された2つの実数を比較し、大きい値を表示するプログラム」を作ってみてはどうでしょう?

できたら,答えにあうようにプログラムを変形してはどうでしょう?
その方がより解りやすいのではないかと思います。

Re:宿題をやっておりまして・・・・・。

#12

投稿記事 by » 16年前

①dounle    ②double
③double  ④%lf,%lf
⑤&a        ⑥&b
⑦a         ⑧b
⑨max       ⑩double
⑪double    ⑫x<y
⑬z=y       ⑭z=x
⑮return
でどうでしょうか。
多分⑩⑪のところは先生の印刷ミスだと思います。
なので
double(⑩_______ a,⑪_______ b)
{
   double z;
   if(⑫_______){
          ⑬_______;
   else
          ⑭_______;
   ⑮_______ z;
}
こういうことだと思います。

また指摘してくれると助かります。

SCI

Re:宿題をやっておりまして・・・・・。

#13

投稿記事 by SCI » 16年前

解答は合ってます。

が、コードが間違っています。おそらく印刷ミスはないので、先生を信用しましょう。
(最初の「セミコロン」はタイプミスでしょう)

Dixq (管理人)

Re:宿題をやっておりまして・・・・・。

#14

投稿記事 by Dixq (管理人) » 16年前

あ,先に答えおわかりになったのですね。素晴らしいです。

しかし答えはあっているようですが,括弧の対応がちょっとおかしいです。
これ手打ちでしょうか?
コンパイルしてみました?

Re:宿題をやっておりまして・・・・・。

#15

投稿記事 by » 16年前

いえ。
うちには、コンパイラが入っていないので、

でも、xがaの代わりになるんですね。
学校では、同じ文字を使っていたんで、こんな方法があることを知りませんでした。

Dixq (管理人)

Re:宿題をやっておりまして・・・・・。

#16

投稿記事 by Dixq (管理人) » 16年前

紙の上じゃ,プログラムの勉強は難しいです。
プログラムの勉強の第一歩は自分のPCにコンパイラを入れることなので,
是非次の課題の時はコンパイルしてみてください。

http://www.microsoft.com/japan/msdn/vst ... fault.aspx
(VC++2008)

フリーで手に入ります。

kazuoni

Re:宿題をやっておりまして・・・・・。

#17

投稿記事 by kazuoni » 16年前

代わり・・・なんだか微妙なニュアンスですが^^;
もう少し関数について勉強されたほうが良いかもしれませんね。


>(ry
(ryって(ryakuの略だったんですね。
最近こういうのについていけませんw
orzも「オーズ」なんて読んで意味も理解してませんでしたorz

たかぎ

Re:宿題をやっておりまして・・・・・。

#18

投稿記事 by たかぎ » 16年前

> 入力された2つの実数を比較し、大きい値を返す関数(関数名 fmax)を使ったプログラムを作成しなさい。

標準関数にも、同名、同機能の関数が存在しますが、それを自分で実装しようということでしょうか?

non

Re:宿題をやっておりまして・・・・・。

#19

投稿記事 by non » 16年前

たかぎさんへ
> 標準関数にも、同名、同機能の関数が存在しますが

いつのまにか、標準関数になっているのですね。知らなかった。
課題を出した先生もきっと知らなかったというのが答えでしょう。

孫さんへ
単純な入力ミスです。
>①dounle

間違ってはいませんが、合っていると断定もできません。課題では不明なので。
>④%lf,%lf

閉鎖

“C言語何でも質問掲示板” へ戻る