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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ミルキー

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

#1

投稿記事 by ミルキー » 7年前

int a=0;
int b=0;
int C=32;
a = C/10;
b = C%10;

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

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

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

白い変人

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

#2

投稿記事 by 白い変人 » 7年前

その「ある二桁の数字」Cに入る値が、10進数で2桁である事が保証されていると言うのでしたら、その方法でも問題は無いとは思いますが、Cに100以上の値や負の値が入る可能性が有る場合にはその限りではないとは回答したいとは思います。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

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

#3

投稿記事 by みけCAT » 7年前

ミルキー さんが書きました:この場合、
aには3。bには2が入るということで
間違いないですか?
  • C言語であり、処理系に不都合は無い
  • これは関数内である
  • a, b, C, intはマクロ定義されていない
という仮定をおけば、間違いないと思います。
ミルキー さんが書きました:この式に穴があるならご指摘頂いていいでしょうか
大丈夫なら大丈夫と言ってほしいです。
負の数が入力されないなら、大丈夫だと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

box
記事: 2002
登録日時: 13年前

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

#4

投稿記事 by box » 7年前

重隅な話をすると、
ミルキー さんが書きました:

コード:

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

返信

“C言語何でも質問掲示板” へ戻る