アプリ版:「スタンプのみでお礼する」機能のリリースについて

今C言語を学校で習っているのですが
課題に「剰余演算子(%)を使わずにあまりを出しなさい」というものがありました。
自分で考えてもわからず結局友達から
x-(xーy)-y= y/xの余り
であると教えてもらいました。
しかし答えを教えてもらっただけなので自身の力でこの式を導きだせません。
どのように考えたらいいのでしょうか。
幼稚な質問で申し訳ありません、よろしくお願いします。

A 回答 (5件)

ANO4 を補足すると、所謂数学で使われる剰余は常に非負という定義が


よく使われますが、これは

y - abs(x) * (int) floor(y * 1.0 / abs(x))

とけっこうややこしくなります。
    • good
    • 0

>x-(xーy)-y= y/xの余り



なんだこれ? 間違いでしょう。正しくは

y - (y / x) * x

ですね。これは C99 以降の%演算子の「定義」です。
y や x が負数でも成り立ちます。
C89では結果の符号がどうなるか、コンパイラの実装依存のため、
コンパイラに合わせてコードで実装する必要があります。
    • good
    • 0

>友達から


>x-(xーy)-y= y/xの余り
>であると教えてもらいました。
誤答です

>しかし答えを教えてもらっただけなので自身の力でこの式を導きだせません。
安心してください。
誤答ですので、この式を導けないのは当然です。
    • good
    • 1

小学校の頃を思い出してみましょう。



11 ÷ 4 の計算するときは、こんな風にやりませんでしたか?

4×2 =8 <11
4×3 = 12 > 11
だから
商は 2
余り は 11 - 4×2 = 3

同じことをやればいいだけです。
商の求め方はわかりますよね?


> 自分で考えてもわからず結局友達から
> x-(xーy)-y= y/xの余り
> であると教えてもらいました。

その友達も理解できていないか、
あなたが式を写し間違えたか、
あなたに嘘を教えたか、
のどれかです。
    • good
    • 1
この回答へのお礼

助かりました

式についてはおそらく私が移し間違えたようです、
申し訳ありません。
私的に一番わかりやすく感じたためベストアンサーに選ばせていただきました。
もっと数学を基本のところから学びなおしつつ、C言語を進めていこうと思います。
他にも皆様親切に答えていただき本当にありがとうございました!

お礼日時:2017/01/20 06:30

いきなり抽象的なことを考えずに、具体的なことを考えてみる。


7÷3をどうやって計算してますか?
あるいは、
7-3=?
7-3-3=?
7-3-3-3=?
じゃぁ、割り算の計算って何?商って何?余りって何?
プログラムが組めるなら書けるよね?

あ、その友達と進駐したければその式について考えていてください。
7と3を入れればすぐに判ります。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!