C语言题目:身份证号码与性别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言题目:身份证号码与性别?相关的知识,希望对你有一定的参考价值。
题目描述
按照身份证号码的制定标准,身份证号码由18位组成:前6位数字为行政区划分代码,第7位至14位数字为出生日期,第15位至17位数字为顺序码,第18位为校验码。其中的顺序码:奇数为男,偶数为女
请根据身份证号码判断对应的性别
输入
身份证号码,18位
输出
身份证所属人的性别(Male/Female),男性为M,女性为F
样例输入 Copy
41302619991001692X
230804199812250017
样例输出 Copy
F
M
代码文本:
#include "stdio.h"
#include <string.h>
int main(int argc,char *argv[])
char s[19];
printf("Please enter your ID number...\\nID=");
if(scanf("%18s",s)!=1 || strlen(s)!=18)
printf("Input error, exit...\\n");
return 0;
printf("%c\\n",(s[16]&1 ? 'M' : 'F'));
return 0;
参考技术A 身份证第十七位单号为男双号为女。 参考技术B 身份证是可以显示性别的,数字代表的 参考技术C 那个这一个计算机编程程序啊,我不会,我也不能给你回答这个问题 参考技术D 计算机培训班学习课程标准的教材里有如何利用身份证号码计算出生年月,年龄及性别
生日期码
(身份证号码第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。年龄就是2016-1981=35岁。
顺序码
(身份证号码第十五位到十七位)地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。例如第十七位是4就是女性,十七位是7就是男性。
公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
结构和形式
1.号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2.地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3.出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4.顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5.校验码
根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
年龄倒要做个计算,减法总会吧。本回答被提问者采纳 参考技术B 一、身份证号码的构成规则:
1、前6位为地区代码。具体请在网上搜索相关介绍。
2、7位至14位,出生年月日,7—10位出生年,11—12出生月(两位),13—14出生日。
3、15—18位,识别代码。其中第17位就是性别代码,单数为男,双数(含0)为女。
二、从身份证中提取相应的位数进行相应的计算。
1、提取出生年月日并用日期格式表示在单元格里(mid函数+date函数)。
(1)mid函数一共有三个参数:第1个表示字符串或单元格,第2个表示从第几位开始提(用数字表示),第3个表示需要提取几位(用数字表示)。如本例从身份证中提取出生年月日就是要提取第7位开始的8位。用函数表示为:=mid(存放身份证的单元格,7,8)
(2)这样不是标准的日期格式,为我们计算年龄增加了困难,所以要用date函数来生成日期格式。
date函数就是日期函数,一共有三个参数,具体表示为:=date(年,月,日)。如:=date(1966,3,13)得出的结果就是(1966-3-13)
本例需要结合两个函数进行。具体公式为:=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)),最后记得要将单元格格式设置为“日期”才行哦。
2、计算年龄(DATEDIF函数),具体公式为:=DATEDIF(B2,TODAY(),"y")
此函数有三个参数,第一个表示开始日期(本例为出生日期),第二个表示结束日期(本例为今天,公示中用了一个TODAY函数,表示提取计算机日期,此函数没有参数,所以只用了一个双括号表示),第三个参数为计算相差什么(年用Y,月用M,日用D。本例指相差的年,所以用Y)。
3、计算性别(if函数+mod函数)
(1)if函数:假如条件为真时显示什么,为假时显示什么。具体为:=if(条件,真时显示,假时显示)。如:=if(3>1,1,0)表示如果3大于1,就显示1,否则就显示0,显然,这个的结果是1。
(2)mod函数:表示求两数相除的余数。语法为:=mod(被除数,除数)。如:=mod(9,2)结果为1。
(3)本例需要提取第17位数字进行判断,单数为男,双数为女。很显然,一个数除以2,余数是1的是单数,余数是0的是双数。具体公式为:=IF(MOD(MID(A2,17,1),2)=1,"男","女")
以上是关于C语言题目:身份证号码与性别?的主要内容,如果未能解决你的问题,请参考以下文章