YanChenLe 2022-11-12 10:31 采纳率: 62.5%
浏览 13
已结题

pat乙级 1033 旧键盘打字问题

为什么测试点2,3,4一直过不了?

#include <stdio.h>
#include <string.h>
int main() {
    int count = 0;
    int hash[255] = {0};
    char brokey[50];
    gets(brokey);
    int len = strlen(brokey);
    char putstr[100];
    gets(putstr);
    int len1 = strlen(putstr);
    if(len1!=0){
        for (int i = 0; i < len; i++) {
            hash[brokey[i] - '0'] = 1;
            if(brokey[i]=='+'){        //如果是'+',所有大写字母标为1
                for(int i='A'-'0';i<='Z'-'0';i++){
                    hash[i] = 1;
                }
            }
        if(brokey[i]>='A'&&brokey[i]<='Z')
            hash[(brokey[i]+32)-'0'] = 1;         //标记对应小写字母
        }
        for(int i = 0;i<len1;i++){
            if(hash[putstr[i]-'0']==0){
                printf("%c",putstr[i]);
                count = 1;
            }
        }
    }
    if(count==0)
    printf("\n");
    return 0;
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-12 12:08
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 修改了问题 11月12日
  • 修改了问题 11月12日
  • 展开全部