/*#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. 009-python基础-数据类型-列表和元组

    一.列表 在python中叫"列表",其他语言中成为"数组" 元素中可以存储字符串.数字甚至变量. 元素索引顺序从0开始. 例如 name_list[0] 就是 ...

  2. python 从private key pem文件中加载public key

    import rsa import logging from Crypto.PublicKey import RSA class RsaUtil: def __init__(self, pem_fil ...

  3. python的pip和virtualenv使用心得

    pip可以很方便的安装.卸载和管理Python的包.virtualenv则可以建立多个独立的虚拟环境,各个环境中拥有自己的python解释器和各自的package包,互不影响.pip和virtuale ...

  4. hdu1007

    Have you ever played quoit in a playground? Quoit is a game in which flat rings are pitched at some ...

  5. "大账户"时代

    当要下载某文件时,哪怕是免积分,也需要登陆账户才能下载.  当要浏览某论坛时,只有注册账户,才可以浏览帖子.  当要网购商品时,必须注册账户,还要有众多宝宝平台,才可以实现交易.  当要团购时,必须先 ...

  6. 菜鸟学习Struts——总结

    一.原理 客户端请求到ActionSeverlet,ActionSeverlet负责截URL进行分发分发到每一个Action上,Action负责和Model打交道然后把相关信息返回到ActionSev ...

  7. MongoDB的交互(mongodb/node-mongodb-native)、MongoDB入门

    MongoDB 开源,高性能的NoSQL数据库:支持索引.集群.复制和故障转移.各种语言的驱动程序:高伸缩性: NoSQL毕竟还处于发展阶段,也有说它的各种问题的:http://coolshell.c ...

  8. Sliverlight Slide 的左右滑动

    private void btnPrev_Click(object sender, RoutedEventArgs e) { scrollRule = (scrollRule-) >= ?(sc ...

  9. c/c++常用代码 -- 共享内存

    #pragma once #include <stdio.h> #include <tchar.h> #include <string.h> #include &l ...

  10. Entity Framework 学习第一天

    文章是作为初学者记录之用,没有学习过的同学可以借鉴一下,至于用过和高手嘛,就算了吧.仅是入门.废话不多说了,马上新建个项目,添加Entity Framework,这个词以下将用EF代替. 本文使用的I ...