• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一番大きい奇数を表示する)

scanf関数を使用して一番大きな奇数を表示するプログラムを作る方法

このQ&Aのポイント
  • scanf関数を使用して数字を10回入力し、一番大きな奇数を表示するプログラムを作りたいです。
  • 奇数を判別するソースコードをどのように追加すればいいですか?
  • プログラムの要点は、入力された数字の中から最大の奇数を見つけることです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

そのプログラムだと > 数字を10回入力して一番大きなものを表示させる ことさえできていないように思えるのですが。 > for (i = 0; i < 10; i++) > { >   memset(buf, 0, sizeof(buf)); >   printf("input>\n"); >   scanf("%s", buf); > } scanfするたびにbufが上書きされるので 結局10回目に入力された文字列しかbufに残りませんが、 それでよいのですか? > if ((buf[i] & 1) == 1) これでは文字列bufのi文字目の"文字コード"が奇数かどうかを見ていることになりますが、 それでよいのですか? > if (strcmp(buf, str) > 0) strcmpは数値の大小ではなく、文字列の辞書順の比較ですが、意図通りですか? 数値として比較したいなら、scanfで%dを使って数値として取得した方が良くないですか? (他にも方法はあろうかと思いますが。)

nation77
質問者

お礼

誤ってメモ帳の試行錯誤している最中のソースをそのままペーストしてしまいました・・・。 ただ、ご回答のようにbufが毎回上書きされてしまうので全く意味をなさないですね。

関連するQ&A

専門家に質問してみよう