周旖璇 2022-07-19 14:03
浏览 15
已结题

PAT 乙级练习题 1003 我要通过 无法全部通过测试样例

问题遇到的现象和发生背景

PAT 乙级练习题 1003 我要通过 无法全部通过测试样例

问题相关代码,请勿粘贴截图
#include <iostream>
#include <stdio.h>
#include <string.h>

int main(void)
{
    char str[101] = {0};
    char result[10][4] = {0};
    int n = 0;
    int i = 0,j = 0;
    int t_num = 0, p_num = 0, a_num = 0, p_cnt = 0,t_cnt = 0, enter_num = 0;
    std::cin >> n;
    for (i = 0; i < n; i++)
    {
        t_num = 0, p_num = 0, a_num = 0, p_cnt = 0, t_cnt = 0, enter_num = 0;
        std::cin >> str;
        //enter_num = strlen(str);
        for (j = 0; j < 100; j++)
        {
            if (str[j] != '\0')
            {
                if ((str[j] != 'P') && (str[j] != 'A') && (str[j] != 'T'))
                {
                    strncpy(result[i], "NO", sizeof(result[i]) - 1);
                    break;
                }
                if (str[j] == 'P')
                {
                    p_num = j;
                    p_cnt += 1;
                }
                if (str[j] == 'T')
                {
                    t_num = j;
                    t_cnt += 1;
                }
            }
            else
            {
                enter_num = j;
                break;
            }
        }
        if ((t_num - p_num <= 1) || (t_cnt != 1) || (p_cnt != 1))
        {
            strncpy(result[i], "NO", sizeof(result[i]) - 1);
        }
        else if (p_num * (t_num - p_num - 1) != (enter_num - t_num - 1))
        {
            strncpy(result[i], "NO", sizeof(result[i]) - 1);
        }
        else
        {
            strncpy(result[i], "YES", sizeof(result[i]) - 1);
        }
        
    }
    for (i = 0; i < n; i++)
    {
        std::cout << result[i] << std::endl;
       // if (i < n - 1) std::cout << std::endl;
    }
    return 0;
}

运行结果及报错内容
我的解答思路和尝试过的方法

感觉问题出在长度计算上,贴出来的代码可以通过5/6,长度计算换成strlen只能通过3/6.参考了别的答案感觉思路都是一样的,不知道问题出在哪,请大家帮我看看

我想要达到的结果
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 7月27日
    • 创建了问题 7月19日

    悬赏问题

    • ¥15 短剧的sdk在哪里接入
    • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
    • ¥60 找人回答kibana8.14.3二次集成开发,自定义插件ui导航栏如何设置
    • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零
    • ¥15 不同模型怎么用同一个shader
    • ¥15 安卓启动没有ais proxy与v4l2的log打印
    • ¥15 go怎么读取mdb文件里面的数据
    • ¥60 Matlab联合CRUISE仿真编译dll文件报错
    • ¥15 脱敏项目合作,ner需求合作
    • ¥15 脱敏项目合作,ner需求合作