/*#include<iostream>

using namespace std;

void input();

int counter=0,jishu_sum=0,oushu_sum=0,sum=0;

int input_num[20];

int main()

{

cout<<"Please enter 16 to 19 numbers which arrange from 0~9:,input 'e' means end";

cout<<endl;

input();

cout<<"Inputed numbers is: "<<endl;

for(int i=0;i<counter;i++)

cout<<input_num[i];

int jishu_i=counter;

int oushu_i=counter;

do

{





jishu_sum+=input_num[jishu_i];

jishu_i-=2;

}

while(jishu_i>=0);

do

{

int oushu=input_num[oushu_i-1]*2;

if(oushu>9) oushu-=9;

oushu_sum+=oushu;

oushu_i-=2;

}

while(oushu_i>=0);





sum=oushu_sum+jishu_sum;

if(!(sum%10))

cout<<endl<<"The card numbers is ligal."<<endl;

else 

cout<<endl<<"The card numbers is illigal."<<endl;





return 1;

}

















void input()

{

char end;

do

{   if(counter<20)





{   cin>>input_num[counter];

while(input_num[counter]>9)

{

cout<<"error,please enter numbers from 0~9:";

cin>>input_num[counter];

}

cout<<"end?";

cin>>end;

    cout<<counter+1<<" numbers have been inputed"<<endl<<"please enter numbers from 0~9"<<endl;

   ++counter;

}





else 

{

cout<<"input again:";

counter=0;

input();

}





}while(end!='e');

}*/

#include<iostream>

using namespace std;

int input(char*);

int sum1(char*,int);

int main()

{

char buffer[30]={'0'};

int numbers=input(buffer);

int sum=sum1(buffer,numbers);//不要让函数名与变量名相同.

if(sum%10==0)cout<<"ligal;"<<endl;

else cout<<"illigal:"<<endl;

return 0;

}

















int input(char*p)

{

cout<<"请输入16至19位0~9的数字:"<<endl;

int i=0;

do{

if(i==30)break;

p[i]=(char)getchar();//getchar()返回值是读取字符对应的ASCII值。

//可以将其强制转化为char类型

//cout<<p[i];


}while(p[i++]!='\n');





if(i<17||i>20)

{

cout<<"位数输入错误,请重新输入:"<<endl;

input(p);

}

else cout<<"the card number:"<<p<<endl;

return i;//函数可以返回局部变量但是不能返回局部指针.

}









int sum1(char* p,int x)

{

int oushu_sum=0,jishu_sum=0;

for(int i=x-1;i>=0;i-=2)

jishu_sum+=p[i];

for(i=x-2;i>=0;i-=2)

{

if(p[i]*2>=10)

oushu_sum+=p[i]*2-9;

else oushu_sum+=p[i]*2;

}

return oushu_sum+jishu_sum;

}





/*int main()

{

cout<<100-'a';//计算机对字符常量的处理是将其翻译为对应的ASCII值

              //虽然肉眼看到的是‘a',但是计算机执行的时候看到是其码值.

















}*/

13test02:信用卡校验的更多相关文章

  1. 完整的JavaScript版的信用卡校验代码

    function isValidCreditCard(type, ccnum) { if (type == "Visa") { // Visa: length 16, prefix ...

  2. Object-C 银行卡,信用卡校验规则(Luhn算法)

    最近的项目中涉及到绑定用户的银行卡,借记卡.经过查找银行卡的校验规是采用 Luhn算法进行验证. Luhn算法,也被称作“模10算法”.它是一种简单的校验公式,一般会被用于身份证号码,IMEI号码,美 ...

  3. Java实现信用卡校验

    当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过. 该校验的过程: 1.从卡号最后一位数字开始, ...

  4. ios 判断,qq,银行卡,手机号,邮编,生日,数字,字符串,护照, email

    http://blog.csdn.net/dyllove98/article/details/8635079 IdentifierValidator.h // //  IdentifierValida ...

  5. 算法笔记_228:信用卡号校验(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证 ...

  6. PHP中使用Luhn算法校验信用卡及借记卡卡号

    Luhn算法会通过校验码对一串数字进行验证,校验码通常会被加到这串数字的末尾处,从而得到一个完整的身份识别码. 我们以数字“7992739871”为例,计算其校验位: 从校验位开始,从右往左,偶数位乘 ...

  7. SpringMvc中的数据校验

    SpringMvc中的数据校验 Hibernate校验框架中提供了很多注解的校验,如下: 注解 运行时检查 @AssertFalse 被注解的元素必须为false @AssertTrue 被注解的元素 ...

  8. jQuery校验

    jQuery校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&q ...

  9. jQuery校验validate详解(转)

    jQuery校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&q ...

随机推荐

  1. 17.python自定义函数

    什么是函数,函数说白了就是将一系列代码封装起来,实现代码的重用. 什么是代码重用? 假设我有这样的需求: 但是我还是觉得太麻烦了,每次想吃饭的时候都要重复这样的步骤.此时,我希望有这样的机器:

  2. NLP自然语言处理学习笔记三(集成开发环境)

    前言: 我们在做自然语言学习的过程中使用Python进行编程.是用解析器的方式确实有些麻烦.在这里给大家推荐一款集成开发环境IDE可以很方便的对Python进行项目管理,代码自动提示,运行调试等. 简 ...

  3. 嵌入式中的 *(volatile unsigned int *)0x500 解释

    C语言中*(volatile unsigned int *)0x500的解释: 如下: (unsigned int *)0x500:将地址0x500强制转化为int型指针*(unsigned int ...

  4. centos php-fpm nginx配置

    移除旧的软件包:yum remove httpd* php* 安装:yum install php php-fpm yum install php-gd php-mysql php-mbstring ...

  5. Hadoop入门学习随笔

    推荐视频:慕课网http://www.imooc.com/video/8107 ===Hadoop是什么? 开源的.分布式存储+分布式计算平台. http://hadoop.apache.org == ...

  6. EF4.1之贪婪加载和延迟加载

    默认情况下,EF4.1是只查询到涉及到的数据对象,但是EF4.1支持两种方法进行控制其加载: 1.贪婪加载 2.延迟加载 使用的表还是上次使用的Order 和 OrderDetails两张表来举例说明 ...

  7. 42.JTAG接口使用注意

    无论是客户反馈,还是自己亲身经历,USB-Blaster不能下载配置FPGA的情况时有出现.究其原因,大致有如下几条: 1. FPGA器件上的JTAG相关引脚出现故障: 2. USB-Blaster坏 ...

  8. Python实现C4.5(信息增益率)

    Python实现C4.5(信息增益率) 运行环境 Pyhton3 treePlotter模块(画图所需,不画图可不必) matplotlib(如果使用上面的模块必须) 计算过程 st=>star ...

  9. Struts2应用的开发步骤

    1.在web.xml文件中定义核心Filter来拦截用户请求 由于web应用是机遇请求/响应框架的应用,所以不管哪个MVC Web框架,都需要在web.xml中配置该框架的核心Servlet或Filt ...

  10. zookeeper数据迁移

    在不停机的情况下,实现集群之间数据迁移代码: private void create(ZooKeeper zk1, ZooKeeper zk2, String path) throws Excepti ...