atcoderのPlacing marblesという問題についての質問です。
https://atcoder.jp/contests/abs/tasks/abc081_a
この回答をみてみると
----------------------------------
#include <stdio.h>
int main(void)
{
char s[3];
int x = 0,i;
scanf("%s",s);
for(i = 0;i < 3;i++) {
x += s == '1';
}
printf("%d",x);
return 0;
}
-----------------------------------
なのですが、
for(i = 0;i < 3;i++) {
x += s == '1';
}
ここ(x += s == '1';)の意味を教えていただきたいです。
僕は、s[1]のとき1なら xに1加算して次はs[2]を評価するのだと思いました。
なぜこの書き方なのか、ifを使わなくても条件をつけることができるのか疑問です。
説明が下手で申し訳ないのですがどうかよろしくお願いいたします。
+=と==について
Re: +=と==について
==演算子は、両辺を比較し、等しければ1、等しくなければ0という結果になります。
この比較結果の値を、+=演算子によってxに加えています。
[/i]が無くても、[i]は斜体タグと認識されてしまいます。
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
※この記事内の[i]は、U+200Bを挟むことでタグとしての認識を回避しています
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: +=と==について
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: +=と==について
ありがとうございます!納得しました。みけCAT さんが書きました: ↑3年前==演算子は、両辺を比較し、等しければ1、等しくなければ0という結果になります。
この比較結果の値を、+=演算子によってxに加えています。
[/i]が無くても、[i]は斜体タグと認識されてしまいます。
ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
※この記事内の[i]は、U+200Bを挟むことでタグとしての認識を回避しています
タグの件了解しました。