C言語のプログラムについて質問
明解C言語という書籍に
大きい方を表示するプログラム
#include <stdio.h>
int maxof(int x, int y)
{
if (x > y)
return (x);
else
return (y);
}
int main(void)
{
int na, nb;
puts("二つの整数を入力してください。");
printf("整数1:"); scanf("%d", &na);
printf("整数1:"); scanf("%d", &na);
printf("大きいほうの値は%dです。\n", maxof(na, nb));
return (0);
}
の関数maxofを利用し、
int max4(int w, int x, int y, int z)
{
return (maxof(maxof(w, x), maxof(y, z)));
}
を挿入して変えれば四つの整数から最大値を求められるとのことですが、
コンパイルがうまくいきません。
関数maxofのwとx,yとzをそれぞれ比較し最大値を求めてさらにmaxof(w, x)とmaxof(y, z)を比較して最大値を求めるということですよね?ですので、
maxof(w, x)
{
if (w > x)
return (w);
else
return (x);
}
maxof(y, z)
{
if(y > z)
return (y);
else
return (z);
を挿入しようとしたらmaxofはすでにありますというようなことが表示されてだめでした。
また、
int maxof(maxof(int w, int x), maxof(int y, int z))
{
if (w > x)
return (w);
if (w < x)
return (x);
if (y > z)
return (y);
if (y < z)
return (z);
if (maxof(w, x) > maxof(y, z))
return (maxof(w, x));
if (maxof(w, x) < maxof(y, z))
return (maxof(y, z));
}
としてみましたがやはりだめでした。
前のページの説明を読み返したりネットで調べてもわかりませんでした。
何がわからないのかがわからないのでもうお手上げです。
長くなってすいません
プログラム例と説明をお願いします。
お礼
ありがとうやで
補足
申し訳ありませんタイプミスです。 vx%vyとした上で 大きな数値(2桁以上)を入力すると すぐにセグフォが起こるのです。