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

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条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

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

      悬赏问题

      • ¥100 AZURE创建地图类webapp
      • ¥20 51单片机实训实验报告
      • ¥15 C# 循环读写数据中途突然变慢
      • ¥15 用Java实现双端队列
      • ¥150 ID3决策树实现分类
      • ¥15 multisim10安装后,找不到NI License Manager的程序来安装许可证
      • ¥15 C++银行卡系统 Help!
      • ¥15 R语言数据分析的相关问题
      • ¥15 模型导入SP后贴图纹理只有一个,拆了四张UV的,怎么解决?
      • ¥15 检索带order by 非常慢