B1031 查验身份证 (15分)【C语言】

2023-11-14

B1031 查验身份证 (15分)【C语言】

原题链接

用flag标记是否所有号码都正常,正常时为1;但凡有一个身份证号出错,就将flag置为0。

题目描述:
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:

首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:

Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2

现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。

输入格式:
输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。

输出格式:
按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。

输入样例1:

4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X

输出样例1:

12010X198901011234
110108196711301866
37070419881216001X

输入样例2:

2
320124198808240056
110108196711301862

输出样例2:

All passed

实现代码:

#include <stdio.h>

char M[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
int weight[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};

int main()
{
	int n, i, j, k, flag=1;
	char id[18];
	scanf("%d", &n);
	for(i=0; i<n; ++i){
		scanf("%s", id);
		int sum = 0;
		for(j=0; j<17; ++j){
			if(!(id[j]>='0' && id[j]<='9')) break;
			sum = sum + (id[j]-'0') * weight[j];
		}
		if(j<17){
			flag = 0;
			printf("%s\n", id);
		}else{
			if(M[sum%11] != id[17]){
				flag = 0;
				printf("%s\n", id);
			}
		}
	}
	
	if(flag==1) printf("All passed\n");
	
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

B1031 查验身份证 (15分)【C语言】 的相关文章

  • 系统架构设计专业技能 · 信息系统基础

    系列文章目录 系统架构设计专业技能 网络技术 三 系统架构设计专业技能 系统安全分析与设计 四 系统架构设计师 系统架构设计高级技能 软件架构设计 一 系统架构设计师 系统架构设计高级技能 系统质量属性与架构评估 二 系统架构设计师 系统架
  • 一.初识Spring Boot ,了解什么是spring boot 及他的优点缺点应用背景

    目录 1 spring 能做什么 spring网站的提供的 2 为什么用SpringBoot 官网信息 3 1 SpringBoot优点 3 2 SpringBoot缺点 4 springboot 出现的时代背景 4 1 微服务 这是提出的
  • GPT专业应用:生成电影解说词

    正文共 969 字 阅读大约需要 3 分钟 内容创作者必备技巧 您将在3分钟后获得以下超能力 快速生成电影解说词 Beezy评级 B级 经过简单的寻找 大部分人能立刻掌握 主要节省时间 推荐人 Kim 编辑者 Linda 图片来源 Lexi
  • UI系统——作业与练习

    血条 Health Bar 的预制设计 具体要求如下 分别使用 IMGUI 和 UGUI 实现 使用 UGUI 血条是游戏对象的一个子元素 任何时候需要面对主摄像机 分析两种实现的优缺点 给出预制的使用方法 IMGUI制作血条 using
  • easy-excel批量导出数据

    easy excel批量导出 前言 最近遇到个用户数据批量导出excel的需求 第一次看到这个需求大家第一时间想到的应该大多都是easy excel这个框架吧 哈哈 我第一时间想到的也是这个框架 但是对于少量的数据 比如有10个用户这样的数
  • 项目一 计算器

    目录 学习目标 1 1准备工作 1 1 1搭建QT开发环境 1 2用户界面UI设计 1 2 1显示模块 1 2 2按键模块 1 3功能实现 1 3 1输入输出反馈 1 3 2退格与清除功能 1 3 3浏览历史记录与历史记录清除功能 1 3
  • Matlab第二版(本科教学版)

    matlab程序 数字图像处理第二版 本科教学版 第七章 图像分割 注 代码原因 程序源码中笑脸 符合都为 例7 1 点检测 程序源码 f imread D photo DIP3E CH05 Original Images Fig0524
  • 语音特征公式与python实现

    参考pyAudioAnalysis openSmile以及语音信号处理实验教程 MATLAB源代码 Introduction to Audio Analysis A Matlab Approach 完整测试文件 注意 以下代码不在genFe
  • uboot下载与安装

    uboot下载 uboot的下载链接 Index of pub u boot denx de uboot安装 这里使用uboot 2012 04 01版本 配合韦东山的s3c2440开发板做实验 如下图 tar zvfx u boot 20
  • linux入门学习(3权限管理)

    权限管理 一 文件或目录的权限查看 1 文件权限的查看 两种查看文件详细信息的方法 ls l file 查看file文件的详细信息 如果是目录 则是查看该目录下的所有子文件的详细信息 ls ld dir 查看dir目录的详细信息 2 文件权
  • STM32串口环形队列

    一 环线队列 在设计串口驱动的过程中 要遵循的两条准则是 1 尽量的减少程序运行的时间 2 尽量的减少程序所占用的内存 单片机相对于电脑来说 单片机的储存空间和电脑的存储空间根本不是一个量级 电脑并不用过多考虑内存的多少 而单片机就需要考虑
  • NodeMCU ESP8266使用温湿度传感器SHT31的方法

    温湿度传感器有各种各样的型号 例如DHT11和HTU21D 但是 由于精度和灵敏度等参数 它们都不适合工业级温度和湿度监测 它们的准确性和灵敏度均较差 因此 本文中我们将使用SHT31温度 湿度传感器 它们是您可以获得的最好和最高精度的器件
  • 尚硅谷2021最新Git教程笔记

    笔记根据网课5h打通Git全套教程丨2021最新IDEA版 与自己操作整理 尚硅谷2021最新Git教程笔记 1 Git概述 1 1 何为版本控制 1 2 为什么需要版本控制 1 3 版本控制工具 1 4 Git简史 1 5 Git工作机制
  • 多线程的同步与互斥——读者写者模型

    在读者写者模型中 同样有 一二三 一个交易场所 两种角色 三种关系 在读者写着模型中 读者与读者之间是共享的关系 因为并没有改变资源 所以不需要互斥 写者与写者之间是互斥的关系 读者与写者之间是同步与互斥的关系 那么如何实现这么复杂的关系呢
  • 前端面试题(一)

    目录 一 解答题 1 样式表以及选择器的优先级 权重 2 浮动特点 3 元素 标签 类型的分类 4 水平垂直居中方法集锦 5 定位模式和定位的特点 6 画个三角形 7 BFC 块级格式化上下文 的特点和触发规则 8 宽高自适应 9 什么是高
  • C语言 一维数组

    一维数组的存储 一维数组在内存中是一段连续的存储区域 格局如下 验证代码如下 include
  • 如何自己开发一个Android APP(6)——程序与操作系统合作

    系统的事件处理 响应系统设置的事件Configuration类 获取系统的Configuration对象 Configuration cfg getResources getConfiguration Configuration类的常用方法
  • JavaScript函数七重关之函数定义

    JavaScript函数七重关的第一关是函数定义 函数定义需要用到function关键字 function myFunction 函数体 document write hello javascrept br 这是函数定义的第一种方法 也可以
  • Cisco Packet Tracer中配置DHCP服务器

    转载于 https blog csdn net qq 41745698 article details 85019218 DHCP介绍 DHCP Dynamic Host Configuration Protocol 动态主机配置协议 通常
  • 感谢CSDN平台记录了我6年的点点滴滴

    感谢CSDN平台记录了我6年的点点滴滴 我的新博客如下 博客园https www cnblogs com ztguang

随机推荐

  • Mysql基本语法

    1 创建数据库 CREATE DATABASE语句用于创建一个新的数据库 语法是 SQL gt CREATE DATABASE DATABASE NAME 例子 创建一个名为 EXAMPLE 数据库 SQL gt CREATE DATABA
  • uni-app this 传递的问题

    最近在使用uni app做个小程序的尝试 因为很久没有做前端了 对这块有点陌生了 毕竟这个和之前的 web的还是有点区别的 上传logo的一个小功能 想法是上传之后 用临时文件替换src的值
  • BART 文本摘要示例

    采用BART进行文本摘要 首先从transformers library导入BartTokenizer进行分词 以及BartForConditionalGeneration进行文本摘要 from transformers import Ba
  • 【HJ96】表示数字

    题目描述 将一个字符中所有的整数前后加上符号 其他字符保持不变 连续的数字视为一个整数 注意 本题有多组样例输入 数据范围 字符串长度满足 1 100 输入描述 输入一个字符串 输出描述 字符中所有出现的数字前后加上符号 其他字符保持不变
  • 中软国际教育科技集团送给参赛选手的专属福利,悟道之巅大赛参与就有奖励

    一 大赛背景 悟道2 0是北京智源人工智能研究院开发的大规模人工智能模型 和一般的人工智能模型不同 开发者可以在不掌握人工智能算法的情况下 仅仅调用大模型的接口 就可以使用人工智能的性能 悟道之巅大赛邀请开发者利用悟道2 0大模型开发自己的
  • C语言基础,数据类型与宏定义

    C基础 1 include
  • 如何使EndNoteX9支持GB/T 7714-2015格式参考文献&解决作者名字全为大写&去掉文章标题中的%J

    文章目录 问题描述 一 如何找到GB T 7714 2015格式 二 解决导入文献中文章标题里有 J 三 如何解决GB T 7714 2015格式导出时作者名字全是大写的问题 总结 问题描述 从学校数据库下载好EndNoteX9后 从谷歌学
  • 火狐调试接口必备 插件 Firefox httprequester

    太难找 要不是之前电脑保存有 还真用不上了 新版本不支持 自行下载旧版本浏览器 本人用56 0 64位 版本
  • C++中i--与--i的区别

    结论 i i 0 i i 1 i i i 1 i 0 while i 代表着先判断后自减并输出自减的值 include
  • QCC512x/302x笔记(3)-- 只改一行代码,实现串口输出调试log

    哈喽大家好 这是该系列博文的第一篇 篇 lt lt 系列博文索引 快速通道 gt gt 上一篇我们知道了如何安装电脑USB驱动 方便后续的调试和烧录 这一篇我们就来打通串口的调试吧 当然通过MDE里面的pydbg调试也是可以的 串口除了可以
  • python3 中使用 kubernetes模版操纵k8s集群

    本文介绍kubernetes模块在k8s集群中的使用 其实就是将对kube apiserver的http访问封装成python可用的对象 详细文档参考官方链接 https github com kubernetes client pytho
  • png的图片四通道,jpg为三通道

    import cv2 img cv2 imread sample jpg cv2 IMREAD UNCHANGED cv2 imshow jpg img cv2 waitKey 0 print img shape img2 cv2 imre
  • 打造高效企业网站系统,助力业务发展!

    企业网站在今天的商业世界中扮演着至关重要的角色 随着市场竞争的日益激烈 打造一个高效的企业网站系统已经成为了实现业务发展和增长的必要条件 本文将分享一些打造高效企业网站系统的关键步骤和技巧 并结合一个案例为读者深入分析 案例 设计公司打造高
  • Flutter与android之间的通讯

    Platform Channel简介 Flutter引入Platform Channel机制来支持不同平台的API调用 在Flutter中 提供了三种Platform Channel用来支持和平台之间数据的传递 BasicMessageCh
  • java 原生queue_JoyQueue - 高性能、云原生、生产级别的消息传递平台

    JoyQueue JoyQueue A cloud native production ready messaging platform with excellent performance Features High performanc
  • ubuntu解压分卷.zip.001 .zip.002

    1 先用cat命令将分卷的zip合成一个 cat file zip gt file new zip 然后用unzip解压的时候报错 是文件太大了 要用7zip来解压 7z x file new zip 就没问题了
  • hbuilder 格式化时 遇到花括号的代码会换行

    菜单 工具 插件配置 format jsbeautifyrc js 修改brace style 为collapse preserve inline 重启HBuilderX
  • 烟火识别算法技术概述

    烟火识别算法技术是一种基于计算机视觉和图像处理的先进技术 旨在自动识别和分析烟火的特征和属性 随着人们对烟火表演的需求不断增加 烟火识别算法技术的研究和应用也越来越受到关注 烟火识别算法技术主要包括图像预处理 特征提取 分类器训练和目标检测
  • C# 代码规范和质量检查工具 StyleCop.Analyzers

    简介 原来一直用 ReSharper 来进行代码质量检查 不过毕竟是收费的 所以想找个免费的可以推广给公司的同事也一起用 搜索了一下 找到了StyleCop 但是我在 VS 2015里安装 StyleCop 或者通过 Nuget 包安装 S
  • B1031 查验身份证 (15分)【C语言】

    B1031 查验身份证 15分 C语言 原题链接 用flag标记是否所有号码都正常 正常时为1 但凡有一个身份证号出错 就将flag置为0 题目描述 一个合法的身份证号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下