注册 登录
编程论坛 C语言论坛

萌新求问问题

yu1358785799 发布于 2021-10-06 00:11, 1304 次点击
Input
输入包含多组数据。

每组数据的第一行有一个N(1 <= n <= 100)

接下来有N行 每一行 是"True" 或者 "False", 表示第i道题被解决或者未被解决 (1 <= i <= n)

Output
对于每组输入,输出包含一个数,为解决的题目总数。

Samples
input
2
True
False
1
False
output
1
0
1 回复
#2
自由而无用2021-10-06 07:52
//online parser: https://www.bccn.net/run/
程序代码:
#include <stdio.h>

typedef unsigned char uint8_t;

int main(int argc, char *argv[])
{
    int i, j;
    uint8_t cnt, bd;
   
#define DATA_CASES 10   
    for (i = 0; i < DATA_CASES; i++) {
        cnt = ((uint8_t *)main)[i] % 10;
        printf("%d\n", cnt);
        for (j = 0, bd = ((uint8_t *)main)[i + 1]; j < cnt; j++) {
#define check_bool(_b) (_b & 0x01)
            check_bool(bd) ? puts("True") : puts("False");
            bd >>= 1;
        }
    }

    return 0;
}


output sample:
5
False
False
False
True
False
2
True
False
7
True
False
True
False
False
True
True
9
False
False
False
True
False
False
True
False
False
2
True
True
1
False
6
False
False
False
False
False
True
2
True
False
7
True
False
True
True
True
True
True
5
False
False
True
True
False
#3
apull2021-10-06 11:55
这题其实就是分组统计T的个数

程序代码:

#include <stdio.h>

int main()
{
    int n, index = 0;
    int arr[100] = {0};
    char buf[10];
    while (1)
    {
        scanf("%d", &n);
        if (n < 1 || n > 100)
            break;
        for (int i = 0; i < n; i++)
        {
            scanf("%s", buf);
            if (buf[0] == 'T')
                arr[index]++;
        }
        index++;
    }

    for (int i = 0; i < index; i++)
    {
        printf("%d\n", arr[i]);
    }

    return 0;
}
1