转……其他人的! ^&^
#include "stdio.h"
#include "string.h"
#include "conio.h"//* gen New 18 ID Card from old 15 ID
char genNewID( char ID[], char NewID[])
{
int W[18] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1}; char A[11] = {'1','0','x','9','8','7','6','5','4','3','2'};
int i,j,S; if(strlen(ID) != 15)
return -1; memcpy( NewID, ID, 6 ); NewID[6]='1';
NewID[7]='9';
NewID[8]=0; strcat( NewID, &ID[6] );
S = 0;
for(i=0;i<17;i++)
{
j = (NewID[i] - '0') * W[i];
S = S + j;
}
S = S % 11;
NewID[17] = A[S];
NewID[18] = 0;
return A[S];
}
int main(int argc, char* argv[])
{
char ID[20], NewID[20],ret=0;
puts("输入原来的15位身份证号码,产生新的18位身份证号码\n");
do{
printf("Input your old 15 ID Card: ");
scanf( "%s", ID );
if(stricmp(ID, "exit") == 0)
break;
ret = genNewID( ID, NewID );
printf("Your New 18 ID Card: %s \n\n", ret != -1 ? NewID : "Input Error!!");
}while(1);
getch();
return 0;
}
#include "stdio.h"
#include "string.h"
#include "conio.h"//* gen New 18 ID Card from old 15 ID
char genNewID( char ID[], char NewID[])
{
int W[18] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1}; char A[11] = {'1','0','x','9','8','7','6','5','4','3','2'};
int i,j,S; if(strlen(ID) != 15)
return -1; memcpy( NewID, ID, 6 ); NewID[6]='1';
NewID[7]='9';
NewID[8]=0; strcat( NewID, &ID[6] );
S = 0;
for(i=0;i<17;i++)
{
j = (NewID[i] - '0') * W[i];
S = S + j;
}
S = S % 11;
NewID[17] = A[S];
NewID[18] = 0;
return A[S];
}
int main(int argc, char* argv[])
{
char ID[20], NewID[20],ret=0;
puts("输入原来的15位身份证号码,产生新的18位身份证号码\n");
do{
printf("Input your old 15 ID Card: ");
scanf( "%s", ID );
if(stricmp(ID, "exit") == 0)
break;
ret = genNewID( ID, NewID );
printf("Your New 18 ID Card: %s \n\n", ret != -1 ? NewID : "Input Error!!");
}while(1);
getch();
return 0;
}
解决方案 »
- 请教:有函数定窗体的位置不?谢谢
- 取不数据,unicode
- 通过线程间接设置控件的问题。。(简单的小问题)
- 关于对话框的问题。
- 求1个火车售票系统的需求分析,简单点的,我要做毕业答辩!!
- 问一个比较弱的问题,关于单选按钮的问题!
- 请问如何获得文本框中CString类型的字符串放入已有的CString类型变量中,如何写更加严谨?
- 那位大侠对 CJLibrary6.8 中的CCJOutlookBar类有过研究的,进来看看吧!
- 我project->add to project->new新建了一个capturethread.cpp文件,但是编译的时候……
- ATL的对话框程序为什么上面加了控件就显示不出来了?
- 寻Socket编程的实例
- 在串口读超时设置中CommTimeOuts.ReadTotalTimeoutMultiplier 是什么含义?
/*输入原来的15位身份证号码,产生新的18位身份证号码的程序,谁的算的不对,说一声
可执行程序在这:bingle.sitenova.net/myprog/newidcard.exe
*/