【解説】ABC081A – Placing Marbles

問題

問題文

すぬけ君は 1,2,3 の番号がついた 3 つのマスからなるマス目を持っています。 各マスには 0 か 1 が書かれており、マス i には si が書かれています。

すぬけ君は 1 が書かれたマスにビー玉を置きます。 ビー玉が置かれるマスがいくつあるか求めてください。

制約

  • s1​,s2​,s3​ は 1 あるいは 0

入力

入力は以下の形式で標準入力から与えられる。

s1​s2​s3​

出力

答えを出力せよ。


入力例 1

101

出力例 1

2
  • マス 1,3 にビー玉が置かれます

入力例 2

000

出力例 2

0
  • ビー玉はどのマスにも置かれません

解答解説

#include<stdio.h>

int main(){

    int count=0;
    char st[3];
  
    scanf("%s", &st);

    for(int i=0; i<3; i++){
        if(st[i] == '1'){
            count++;
        }
    }

    printf("%d", count);
}

🔍コードの解説

#include<stdio.h>
--標準入出力を使うためのライブラリ。

int main(){
--プログラムのエントリーポイント(ここから実行が始まる)。

    int count=0;
--「1」が何個あるかを数える変数 count を0で初期化。

    char st[3];
--長さ3の文字列(配列)st を定義(実際には末尾の \0 を含めて4文字必要ですが、このコードでは3文字と仮定)。

    scanf("%s", &st);
--標準入力から文字列を読み取る。

    for(int i=0; i<3; i++){
        if(st[i] == '1'){
            count++;
        }
    }
--文字列の各文字を見て、もし「1」なら count を1増やす。
    printf("%d", count);
最後に「1」の個数を表示する。