7-12 对了几题(判断题) (10 分)

作者:Happyer

单位:湖北文理学院

代码长度限制:16 KB

时间限制:400 ms

内存限制:64 MB

题目内容:

编写程序,判断用户的判断题答对了几题。 说明: 1--标准答案是一个字符串,仅列出了正确的题号([0,n-1],n为题目数量)。考虑到可视性与题目的数量,从ASCII码表中的字符‘0’(‘0’的ASCII码值为48)开始,依次表示下标0,1,2,……,具体地,字符ch代表的正确编号为ch-'0',如标准答案串为 "a?A",因为这三个字符的ASCII码值分别是97,63,65,故表示只有49,15,17三题是正确的,其余皆为错误。 2--以十个判断题为例,用户提交的答案应该是长度为十的字符串,字符的位置代表了题号,表示正确的字符有['T','t','Y','y','1'],其它均表示为假。 如以下字符串表示用户认为十个题目中前五个是正确的,后五个是错误的:"YytT10nNfF"。

输入格式:

输入内容有三行: 第一行,一个表示题目数量的正整数(取值范围在【5,80】内)。 第二行,一个表示标准答案中正确的编号集的字符串(从ASCII表的字符0开始计数0),题目保证标识无误,但未必是有序排列。 第三行,用户提交的答题选项:一个长度与题目数量一致的字符串,表示对应每一题的判断情况(用单字符表示正确否,约定:YyTt1之一均表示正确,其它为不正确)。

输出格式:

输出用户判断题回答正确数量(多少题与标准答案相同)。

输入样例:

15
907246<=>
yfYtnT101nyNtyY

输出样例:

8

代码如下: 

#include<stdio.h>
#include<string.h>
#define N 1000
int main(void){
    int a[N],b[N];
    int mp[N];
    int n;
    char temp[]={'Y','y','T','t','1'};
    for(int i=0;temp[i]!='\0';i++){
        mp[(int)temp[i]]=1;
    }
    scanf("%d",&n);
    getchar();
    int ans=0;
    char c;
    for(;(c=getchar())&&c!='\n';){
        int ch=c;
        a[ch]=1;
    }
    for(int i=0;i<n;i++){
        int ch=getchar();
        if(mp[ch])
            b[i+'0']=1;
    }
    for(int i='0';i<n+'0';i++){
        ans+=(a[i]==b[i]);
    }
    printf("%d",ans);
}

虽然对了,但是真不知道该怎么写!!(求大神讲解)

原文链接: https://blog.csdn.net/qq_31036127/article/details/106270803?utm_source=app&app_version=4.7.1&code=app_1562916241&uLinkId=usr1mkqgl919blen

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值