/*#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. 【WPF学习日记】——Window的DataContext绑定ViewModel

    1.全局的ViewModel绑定: a)设定全局的ViewModel(App.xaml中): 1 <Application x:Class="MyTest.App" 2 xm ...

  2. poj 1459 Power Network

    题目连接 http://poj.org/problem?id=1459 Power Network Description A power network consists of nodes (pow ...

  3. hdu 3152 Obstacle Course

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3152 Obstacle Course Description You are working on t ...

  4. acdream 1738 世风日下的哗啦啦族I

    原题链接:http://acdream.info/problem?pid=1738 树套树裸题,如下: #include<algorithm> #include<iostream&g ...

  5. 关于android WebViewClient的方法解释

    1.public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true ...

  6. Android UI 组件 » GifView

    GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediaplay来显示这个问题的项目,其用法和 ImageView一样,支持gif图片 使用方法: 1-把Gi ...

  7. JavaScript高级程序设计之数值数组排序

    如果数组中全是Nunber类型,则可以按照数值大小排序 , , , , ]; // asc升序函数 function compareAsc(value1, value2) { if (value1 & ...

  8. [译]rabbitmq 2.5 Where’s my message? Durability and you

    我对rabbitmq学习还不深入,这些翻译仅仅做资料保存,希望不要误导大家. There’s a dirty secret about creating queues and exchanges in ...

  9. [转]Ubuntu下配置NFS服务

    [转]Ubuntu下配置NFS服务  http://blog.163.com/liu8821031%40126/blog/static/111782570200921021253516/ Table ...

  10. [转]WinExec、ShellExecute和CreateProcess及返回值判断方式

    [转]WinExec.ShellExecute和CreateProcess及返回值判断方式 http://www.cnblogs.com/ziwuge/archive/2012/03/12/23924 ...