/*#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. LinearRegression

    利用python实现简单的线性回归对房屋面积进行预测 # -*-coding:utf-8 -*- ''' Created on 2016年12月15日 @author: lpworkdstudy '' ...

  2. python 上下文管理器

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 上下文管理器(context manager)是Python2.5开始支持的一种语 ...

  3. Linux驱动开发之字符设备模板

    /***************************** ** 驱动程序模板* 版本:V1* 使用方法(末行模式下):* :%s/xxx/"你的驱动名称"/g********* ...

  4. JavaWeb之 JSP基础

    什么是JSP JSP的全称是java server page, java服务页面.是提供java服务的页面~ 那么和Servlet有什么区别呢?JSP的页面既可以写java代码~也可以写html代码哦 ...

  5. Windows上搭建android开发环境

    在搭建android开发环境时需要四部分内容,框架如下 其中Java SDK和Eclipse在java4android中有过介绍,重点介绍ADT和Android SDK的安装. 安装Android S ...

  6. 算法系列2《RSA》

    1. RSA介绍 RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响 ...

  7. kettle发送邮件

    使用kettle发送邮件是为了更好的监控ETL的加载信息 以下是我通过测试的一个案例 1. JOB示意图 2.邮件发送配置详细信息 2.1地址信息配置 2.2 服务器信息配置 上图中所说的" ...

  8. dede 忘记密码在数据库中修改方法

    如何找回或修改dedecms后台管理员登录密码呢? 一个客户把密码忘了,找了很长一会没几个靠谱的回答,dede是使用md5加密,但是,它是显示32位md5加密码从第6位开始的20位 方法是直接修改其m ...

  9. 查找bad sql的方法:

    --查找bad sql的方法: select * from (select buffer_gets, sql_text from v$sqlarea ; -- 执行次数多的SQL select sql ...

  10. Webservice初接触

    公司用到了Powerbuilder+Webserice的技术,能将数据窗口中对数据库的请求,以SQL语句的形式,发到Webservice中,然后由Webservice完成对数据库的请求,并将结果返回给 ...