• ベストアンサー
※ 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のポイント
  • EPSON PHOT+を使用して年賀状の印刷をしようとした際、画面右脇の印刷開始マークが表示されず印刷できない状況です。
  • 住所録も入れた状態で印刷ができないため、困っています。
  • PCはWindows 11を使用しています。問題があれば教えていただきたいです。
回答を見る

専門家に質問してみよう