ページ 11

至急!!演算子です。初歩の初歩ですみません

Posted: 2017年6月14日(水) 23:39
by ミルキー
int a=0;
int b=0;
int C=32;
a = C/10;
b = C%10;

この場合、
aには3。bには2が入るということで
間違いないですか?

ある二桁の数字(小数点は無しです)の
十の位と一の位をそれぞれ抽出する式を考えているんですが
一番合理的なのはこれだと思いました。

この認識で問題はないでしょうか?
この式に穴があるならご指摘頂いていいでしょうか
大丈夫なら大丈夫と言ってほしいです。

Re: 至急!!演算子です。初歩の初歩ですみません

Posted: 2017年6月14日(水) 23:50
by 白い変人
その「ある二桁の数字」Cに入る値が、10進数で2桁である事が保証されていると言うのでしたら、その方法でも問題は無いとは思いますが、Cに100以上の値や負の値が入る可能性が有る場合にはその限りではないとは回答したいとは思います。

Re: 至急!!演算子です。初歩の初歩ですみません

Posted: 2017年6月14日(水) 23:52
by みけCAT
ミルキー さんが書きました:この場合、
aには3。bには2が入るということで
間違いないですか?
  • C言語であり、処理系に不都合は無い
  • これは関数内である
  • a, b, C, intはマクロ定義されていない
という仮定をおけば、間違いないと思います。
ミルキー さんが書きました:この式に穴があるならご指摘頂いていいでしょうか
大丈夫なら大丈夫と言ってほしいです。
負の数が入力されないなら、大丈夫だと思います。

Re: 至急!!演算子です。初歩の初歩ですみません

Posted: 2017年6月14日(水) 23:56
by box
重隅な話をすると、
ミルキー さんが書きました:

コード:

    int a=0;
    int b=0;
    int C=32;
    a = C/10;
    b = C%10;
aとbの初期化は特にいりません。
なぜなら、すぐ後で、Cを10で割った商やあまりでもって上書きしているからです。
0で初期化してもしなくても同じだったら、「初期化しない」という楽な方を選びたいところです。