展开全部连续输入时,要清除输入流中残余字符。
修改一点点即好:while(1){ if ( scanf("%*10s%4d",&m)==EOF) break; fflush(stdin); //清除输入流中残余字符其它一字不改,一切照旧if(m=321)printf("Aries\n"); ....
身份证的第7.8.9.10位是出生年;第11.12位是出生月;第13.14位是出生日。
下面是星座表;水瓶座(1月20日-----2月18日)双鱼座(2月19日-----3月20日)白羊座(3月21日-----4月19日)金牛座(4月20日-----5月20日)双子座(5月21日-----6月21日)巨蟹座(6月22日-----7月22日)狮子座(7月23日-----8月22日)处女座(8月23日-----9月22日)天平座(9月23日----10月23日) 天蝎座(10月24日--11月21日)射手座(11月22日--12月21日)魔羯座(12月22日----1月19日)祝你成功!
把你的出生年份前加上19,这不就17位了,假设这17位是ABCDEFGHIJKLMNOPQ,那么S=A*7+B*9+C*10+D*5+E*8+F*4+G*2+H*1+I*6+J*3+K*7+L*9+M*10+N*5+O*8+P*4+Q*2然后再用S除以11得到余数 余数与最后一位的对应关系如下:余数: 0 1 2 3 4 5 6 7 8 9 10最后一位: 1 0 X 9 8 7 6 5 4 3 2 假使余数是5 那么最后一位就是7 明白了吧
因为身份证是由1、前六位是地区代码;2、7--14位是出生日期;3、15-17位是顺序码,其中第17位奇数分给男性,偶数分给女性;4、第18位是校验码.这4部分组成的,知道某人的出生日期、出生地和性别,还需要有有顺序码和校验码,所以不能知道她的身份证号.所以原题干说法错误.故答案为:*.
展开全部 计算方法 1、将前面的身份证号码17位数分别乘以不同的系数。
从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
2、将这17位数字和系数相乘的结果相加。
3、用加出来和除以11,看余数是多少? 4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。
其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2。
(即余数0对应1,余数1对应0,余数2对应X...) 5、通过上面得知如果余数是3,就会在身份证的第18位数字上出现的是9。
如果对应的数字是2,身份证的最后一位号码就是罗马数字x。
例如:某男性的身份证号码为【53010219200508011x】, 我们看看这个身份证是不是合法的身份证。
首先我们得出前17位的乘积和【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)】是189,然后用189除以11得出的结果是189/11=17----2,也就是说其余数是2。
最后通过对应规则就可以知道余数2对应的检验码是X。
所以,可以判定这是一个正确的身份证号码。
扩展资料: X的误会 但是中国的居民身份证在升位后,一些人的尾号变成了X,这部分人在工作生活中,例如去银行存取钱、去汽车公司租赁汽车或者报名参加考试等等过程中,往往不被检验者理解,认为是假身份证,这样的误会给很多人的生活带来不便。
公安局的同志希望领到X身份证的同志正确理解这个数字的含义,查验身份证的机关和单位更应该清楚这一点。
X的意思其实是10,只不过用罗马数字代替了而已,如果不用罗马数字代替的话,那么身份证号将会变成19位数了。
参考资料:百度百科-身份证号码 ...