#1
by 03life » 3年前
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を使わなくても条件をつけることができるのか疑問です。
説明が下手で申し訳ないのですがどうかよろしくお願いいたします。
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[i] == '1';
}
printf("%d",x);
return 0;
}
-----------------------------------
なのですが、
for(i = 0;i < 3;i++) {
x += s[i] == '1';
}
ここ(x += s[i] == '1';)の意味を教えていただきたいです。
僕は、s[1]のとき1なら xに1加算して次はs[2]を評価するのだと思いました。
なぜこの書き方なのか、ifを使わなくても条件をつけることができるのか疑問です。
説明が下手で申し訳ないのですがどうかよろしくお願いいたします。