很大码猴 2021-08-23 23:15 采纳率: 92.9%
浏览 26
已结题

pat乙级 1031查验身份证

#include
using namespace std;
#include
int main()
{
int n;
cin >> n;
int quanzhong[17] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };
char xiaoyan[11] = { '1','0','x','9','8','7','6','5','4','3','2' };
int cnt = 0;
for (int i = 1; i <= n; i++)
{
int sum = 0;
int flag = 1;
char id[18];
scanf("%s",id);
for (int i = 0; i < 17; i++)
{
if (!(id[i] >= '0'&&id[i] <= '9'))
{
cout << id << endl;
cnt++;

            flag = 0;
            break;
        }
    }
    if (flag == 1)
    {
        for (int j = 0; j < 17; j++)
        {
            sum = sum + (id[j] - '0')*quanzhong[j];
        }
        if (xiaoyan[sum % 11] != id[17])
        {
            cout << id << endl;
            cnt++;
        }
    }
}
if (cnt == 0)
{
    cout << "All passed" << endl;
}
system("pause");
return 0;

}
img
为什么这样会部分正确,网上有个答案跟我基本一样但是全部正确

  • 写回答

2条回答 默认 最新

  • Pliosauroidea 2021-08-23 23:39
    关注

    img
    行了跑过了
    原文校验码是大写的X,你匹配用的是小写的x,所以有的点通不过
    有帮助望采纳

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月1日
  • 已采纳回答 8月24日
  • 创建了问题 8月23日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵