ページ 1 / 1
無題
Posted: 2009年10月26日(月) 11:17
by kurei
C始めて2週間の初心者です。
普通1+9=10ですが、1+9=0となるようにあらかじめ設定することってできますか?
Re:無題
Posted: 2009年10月26日(月) 11:25
by softya
>普通1+9=10ですが、1+9=0となるようにあらかじめ設定することってできますか?
予め設定する事はできませんが、そういう計算式は作れます。
printf( "%d", (1+9)%10 );
10で割ったあまりを使う事で、計算結果が0~9の間に収めることが出来ます。
Re:無題
Posted: 2009年10月26日(月) 12:18
by 初級者
あらかじめ設定する、の意味がわかりません。
ご提示の式はいいとして、
他のケースはどういう結果を想定されていますか?
Re:無題
Posted: 2009年10月26日(月) 14:01
by kurei
softyaさんありがとうございます。
逆に0-1=9という計算式をつくることはできますか?
良い案が浮かびません。
Re:無題
Posted: 2009年10月26日(月) 14:22
by 初級者
そういった個別のケースをもとに、
一般化する予定があるのですか?
今後も、個別のケースに関する質問の予定がありますか?
何が満たされれば、一連の質問が終わりますか?
Re:無題
Posted: 2009年10月26日(月) 14:33
by conio
んー
0~9の間で値を循環させたいという事でしょうか?
それならば、増加させる場合・減少させる場合は
それぞれ下記のようにして実現できます。
---------------------------------------
Num = (Num + 1) % 10 //1ずつ増える 9の次は0になる
Num = (Num + 9) % 10 //1ずつ減る 0の次は9になる
---------------------------------------
Re:無題
Posted: 2009年10月26日(月) 14:34
by バグ
0-9だけでよいのですか?
1-7とか、5-6なんかの他のケースは想定しなくても構わないのですか?
Re:無題
Posted: 2009年10月26日(月) 15:50
by softya
例えば、
int a,b,num;
として、
aとbが-9~9の値の範囲だと限定できるなら
num=(20+a+b)%10;
の式で計算できます。
a=0;b=-1;
num=(20+0-1)%10;
num=9;
です。