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

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

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

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

Q&A

2回答

865閲覧

C言語 奇数の最小値と最大値

Ray_penber

総合スコア10

C

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

0グッド

0クリップ

投稿2018/11/24 06:23

前提・実現したいこと

奇数の最大値と最小値を表示したいのです.
正の整数は最大で99個打ち込めます。
-1を入力されたら正の整数終了の合図です。

発生している問題・エラーメッセージ

小さい数を打った時だけすべてnoneになってしまいます。

###ソースコード###

#include <stdio.h>

int main(void)
{
int odd ;
int i, max, min ;
max = 0 ;
min = 9999 ;
for(i=0 ; i<100 ; i++)
{
scanf("%d", &odd) ;
if(odd == -1)
{
break ;
}
else if(odd % 2 != 0 && max > odd)
{
max = odd ;
}
else if(odd % 2 != 0 && min < odd)
{
min = odd ;
}
}

if(max == 0 && min == 9999)
{
printf("none.\n") ;
}
else
{
printf("max=%d, min=%d\n")
}
return 0 ;
}

C言語

試したこと

大きい数字を打ち込んだ時はできます

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

まちがい1;

else if(odd % 2 != 0 && max > odd) { max = odd ; }

maxは0に初期値されていて、oddにはキー入力された正の整数が入るから、"max > odd"は絶対に成り立たない("0 > 正の整数"は成り立たないから) そのため、maxの値は0から変わることがない。

以下のように修正すれば良い(単なる 大小比較演算子の書き間違い)

else if(odd % 2 != 0 && max < odd && 0 < odd) // oddは正の値でなければならない { max = odd ; }

まちがい2:
同様に

else if(odd % 2 != 0 && min < odd) { min = odd ; }

else if(odd % 2 != 0 && min > odd & && 0 < odd) // oddは正の値でなければならない { min = odd ; }

そして、6行目のminの初期値は、9999ではなく整数の最大値にする
(整数の最大値は、システムによって異なるので、使っているシステムがintを何バイトで表しているかを確認してください)

投稿2018/11/24 06:46

coco_bauer

総合スコア6915

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

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

0

else if(odd % 2 != 0 && max > odd)

{
max = odd ;
}
else if(odd % 2 != 0 && min < odd)
{
min = odd ;
}

比較演算子が逆ですな

投稿2018/11/24 06:41

y_waiwai

総合スコア87719

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問