• ベストアンサー

C言語の余剰演算子について

読みにくい文章ですみませんでした 学校の課題(C言語)で 書いてある数字の奇数、偶数、負の数を調べて、それぞれの数をだせ という課題で負の数は0以下を++でカウントしていくのは調べてわかったのですが、 奇数偶数を調べるときに「余剰演算子」「%」を使って調べるみたいなのですが、 学校の講義で余剰演算子を習ってないのに使うのはだめだと思うので、 余剰演算子を使わずに余りを出して、奇数・偶数を調べるのはどうすればいいのか教えてください。

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

  • ベストアンサー
回答No.1

余剰演算子じゃなくて、剰余演算子ですね。 剰余演算子が使えない場合、整数演算であれば、 jyoyo = warareru-(warareru/waru)*waru; で求められるはずです。 仕組みは、整数の割り算は整数の商を返すので、元の数から(商×割る数)を引けば、余りという考えです。

その他の回答 (5)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.6

剰余演算子は本当に使ってはいけないのかって話もありますが、それはさておいて。 奇数・偶数を調べるだけなら「2で割った結果を2で掛けた結果がもとと等しいかどうか」を全て整数型で行えばわかります。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.5

小学校のころにもどって。 2を引いていって最後に1か0になるので、それが余り

  • tossy2011
  • ベストアンサー率17% (3/17)
回答No.4

対象が整数の場合は int num = 9 ; if( ( num / 2 * 2 ) != num ) printf("奇数%n"); else printf("偶数%n");

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

stdlib.h を #include して div.

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

整数型の変数なら最下位ビットが0か1かで判断できますが論理演算子も習ってないなら無視してください if ((value & 1) == 1) {printf("奇数");}

関連するQ&A

  • C言語

    C言語初心者です。 整数を入力しその数が偶数ならプログラムを終了する。奇数ならそれが3の倍数か3の倍数でないかを表示する。入力した数が奇数ならこの操作を何回も繰り返すプログラムを作りたいです。 このプログラムのソースを教えてください。

  • c言語で四則演算の問題をランダムでだしたいです

    c言語で四則演算の問題をランダムでだしたいです。 学校の課題でだされていて誰か助けてください

  • c言語について

    C言語のループのところで詰まってしまってわからないので2問ほど教えていただきたいです。 (1)nから1までの自然数を以下のように対角的に印字せよ。 Enter n:20 20 -19 --18 ---17 ・ ・ ・ ・ -----------------3 ------------------2 -------------------1 (2)入力した数に応じたピラミッドを作れ。 (i)奇数の場合 Enter:5 1 12 123 1234 12345 (ii)偶数の場合 Enter:8 1 22 333 4444 55555 666666 7777777 88888888 という問題なんですがわかるかたお願いします。

  • エクセルに詳しい方、助けてください・・・

    奇数と偶数の数を数えるのに関数を使用したいのですがそのような関数はありますでしょうか?(数字ではなく記号で数えたいのですが) (イメージです)↓  A B C D E F 1 1 2 3 4 5 6 奇数 偶数 2 ○ ○   ○   2   1 3 ○  ○      1   1 このように奇数 偶数のところにカウントした数を表示させたいのですが・・・

  • C言語で逆ポーランド演算式をスタックを用いて表現するには

    C言語でスタックを使って逆ポーランド表記の演算を行うプログラムを作っています。 正の整数の場合はできたのですが、小数や負の数にも対応できるように変えるにはどうしたらよいのでしょうか? 例えば、スペースで区切られた 1.2 4.2 -3.2 + * と言う様な値を入力してちゃんと計算できるようにしたいのですが・・・。

  • 偶数、奇数、倍数、約数、素数について教えて下さい。

    小学校で偶数や倍数などについて習ったのですが、 中学校になって、負の数を習ったり、文字式を習ったり、整数の問題をやっているうちに、 定義がいまいち分からなくなってしまいました。(現役中学生です。) ・偶数、奇数、倍数、約数それぞれにゼロは含まれるのか。 ・素数、偶数、奇数、倍数、約数、に負の数は含まれるのか。  これは、例えば、 -1は素数になるのか、 -2は偶数なのか、もしくは、そもそも負の数に偶数と言うものは無いのか(奇数も同様に)、 -12の約数や倍数はあるのか、もしくは、そもそも負の数に約数・倍数がないのか、 あるとしたら、  3の倍数に負の数や、-3の倍数に正の数があるか、  -6と-9の公約数、-8と12の公約数はあるか、 などなどです。 検索してもよく分からないのですが、教えてもらえないでしょうか。

  • 関数はあるがC言語で書けないプログラム

    数学的に関数はあるがC言語では書けないプログラムを 探しています。 関数自体は偶数か奇数(0以上の整数)を返す関数で しかしプログラムでは書けないというものです。 よろしくお願いします。

  • C言語でセルオートマトンを作成したい

    最近C言語の勉強を始めた学生です。 講義中の課題で「セルオートマトン(ルール90)を作成する」というものがありました。 セルオートマトンについて・どのようなものを作るのかはわかったのですが、”次の世代を作るための計算”の部分をどのようにすれば良いのかわかりません。 ヒントとして、シフト演算を使って…と言われたのですが、なぜシフト演算が必要なのかもわからず… 昔から計算が苦手で、わからないのが歯がゆいです。 どなたか解説して頂けませんでしょうか? ソースコードのみや、それらが載っている書籍の紹介でも構いません。 宜しくお願い致します。

  • C言語初心者の質問失礼いたします。

    C言語初心者の質問失礼いたします。 C言語の講義を受けているものなのですが、講義の課題として、 3桁の整数で二乗すると下3桁がもとの数になるものをすべて求めなさい。 というものが出されました。 何をどのようにプログラムすればいいかさえ、まったくわかりません…。 簡単な問題だよと先生は仰っていたのですが、どうにもこうにわからずにいます 涙 どなたか、どうか一言でもかまいませんのでアドバイスいただけませんでしょうか? よろしくお願いいたします…。

  • 場合の数

    8個の数字1,2,3,4,5,6,7,8がある。8個の数字から相異なる3個の数字を取り出すとき3個の数字の積が偶数となる場合の数 私は3個の数字のうち1つは偶数、残り二つは偶数でも奇数でもどちらでもいいので、 4c1*7c2=84 としました。 が、間違っていました。 解答は 3個の数字の積が偶数となるのは、”3個の数字のうち少なくとも1つが偶数”の場合であるから、求める場合の数は、(3個の数字の取り出し方)-(3個の奇数の取り出し方)=8c3-4c3=52. とあります。 確かにこの方法もわかるのですが、自分のやり方がまちがっているとも思いません。どこが間違っているんでしょうか?どなたかご指摘をよろしくお願いいたします。

専門家に質問してみよう