/*#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. Objective-C关于分类、扮演、协议

    -----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培 ...

  2. Oracle ClusterwarePRCT-1011 : Failed to run "oifcfg".&nb

    OS: Oracle Linux Server release 6.3 DB: Oracle 11.2.0.3 在oracle-linux6.3安装11g RAC,在安装软件时候提示: An inte ...

  3. c语言中通过指针将数值赋值到制定内存地址

    1.一种直观的方法 假设现在需要往内存0x12ff7c地址上存入一个整型数0x100.我们怎么才能做到呢? 我们知道可以通过一个指针向其指向的内存地址写入数据,那么这里的内存地址0x12ff7c其本质 ...

  4. IOS内存管理「3」- 自动释放的基本概念和用法

  5. 创建并配置Filter

    创建Filter需要两个步骤: 创建FIlter处理类. web.xml文件中配置Filter. 创建Filter类 创建Filter必须实现javax.servlet.Filter接口,在该接口中定 ...

  6. JAVA类与对象(五)----对象的生成、使用

    对象的生成 创建一个对象包括对象的声明.实例化.初始化三部分. 1.声明-----类名对象名 声明并不是为对象分配内存空间,而只是分配一个引用空间.对象的引用类似于指针,是32位的地址空间,它的值指向 ...

  7. MDI窗体 的再度思考

    早在敲学生管理系统的时候,青山师哥就跟我说过  MDI 窗体 跟 子窗体的事情,当时只是简单的查询.小小的用了一下,没有太在意. 当再次面对着这个东西更深层的时候才想起师哥那句话.“好好研究一下这个东 ...

  8. js之基本包装类型

    为了便于操作“基本类型值”,JS 提供了 三个 特殊的引用类型:Boolean.Number.String.这些类型和其他引用类型相似,但同时 也具备 与各自基本类型相应的特殊行为. 实际上:每当读取 ...

  9. C#新语法特性前瞻

    今天逛微软的UserVoice site发现了几个有很有用,也很可能被添加到新版C#中的语法,当然也可能被推迟到下一版,拿出来给大家分享一下. 另外还没投票的可以去为自己最想要的新特性投票,有兴趣的可 ...

  10. android开发实现静默安装(root权限)

    方式是将应用设置为内置的系统应用,注意事system/app目录下面,采用copy2SystemApp()方法就可以,注意chmod 777的权限,若是直接将apk拷贝到system/app目录,没有 ...