limits.hを使って任意の最大値、最小値を求める
-
みなみ
limits.hを使って任意の最大値、最小値を求める
5つの任意の最大値、最小値を求めるプログラムを作るのですが、友人にlimits.hを使えばより簡単に作れると言われ作ってみようと思ったのですが、signed int の最大値、最小値が求まるだけでうまく任意の5つの数字のMAX、MINを求められません。
どのように改善すればよいのか教えて頂けると助かります。
Re: limits.hを使って任意の最大値、最小値を求める
limits.hにそのような機能は存在しないと思います。
Re: limits.hを使って任意の最大値、最小値を求める
お友達の考えは間違っています。みなみ さんが書きました:友人にlimits.hを使えばより簡単に作れると言われ
それから、質問者さんの scanf() の書き方も間違っています。
私だったら、例えば次のように書きます。ほんの一例です。
#include <stdio.h>
#define N (5)
int main(void)
{
int a[N], saidai, saishou, i;
for (i = 0; i < N; i++) {
printf("a[%d]=", i), scanf("%d", &a[i]);
}
for (saidai = saishou = a[0], i = 1; i < N; i++) {
if (a[i] > saidai) {
saidai = a[i];
}
if (a[i] < saishou) {
saishou = a[i];
}
}
printf("最大値:%d,最小値:%d\n", saidai, saishou);
return 0;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
みなみ
Re: limits.hを使って任意の最大値、最小値を求める
そうだったのですか!その友人はパイソンを使っているようで実際に実行しているところを見てみたところで来ていたような気がしたので(3週間ほど前の事なのでよく覚えていません…汗)出来ると思っていました。
ご丁寧な解答本当にどうもありがとうございました!
ご丁寧な解答本当にどうもありがとうございました!
-
かずま
Re: limits.hを使って任意の最大値、最小値を求める
limits.h を使わないプログラムは、最初の1つの数と、残りの4つの数の処理が異なります。
limits.h を使ったプログラムは、5つの数の処理が同じです。
#include <stdio.h>
int main(void)
{
int i, n, min, max;
scanf("%d", &n);
min = max = n;
for (i = 1; i < 5; i++) {
scanf("%d", &n);
if (n > max) max = n;
if (n < min) min = n;
}
printf("MAX=%d, MIN=%d\n", max, min);
return 0;
}