13test02:信用卡校验
/*#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:信用卡校验的更多相关文章
- 完整的JavaScript版的信用卡校验代码
function isValidCreditCard(type, ccnum) { if (type == "Visa") { // Visa: length 16, prefix ...
- Object-C 银行卡,信用卡校验规则(Luhn算法)
最近的项目中涉及到绑定用户的银行卡,借记卡.经过查找银行卡的校验规是采用 Luhn算法进行验证. Luhn算法,也被称作“模10算法”.它是一种简单的校验公式,一般会被用于身份证号码,IMEI号码,美 ...
- Java实现信用卡校验
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过. 该校验的过程: 1.从卡号最后一位数字开始, ...
- ios 判断,qq,银行卡,手机号,邮编,生日,数字,字符串,护照, email
http://blog.csdn.net/dyllove98/article/details/8635079 IdentifierValidator.h // // IdentifierValida ...
- 算法笔记_228:信用卡号校验(Java)
目录 1 问题描述 2 解决方案 1 问题描述 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证 ...
- PHP中使用Luhn算法校验信用卡及借记卡卡号
Luhn算法会通过校验码对一串数字进行验证,校验码通常会被加到这串数字的末尾处,从而得到一个完整的身份识别码. 我们以数字“7992739871”为例,计算其校验位: 从校验位开始,从右往左,偶数位乘 ...
- SpringMvc中的数据校验
SpringMvc中的数据校验 Hibernate校验框架中提供了很多注解的校验,如下: 注解 运行时检查 @AssertFalse 被注解的元素必须为false @AssertTrue 被注解的元素 ...
- jQuery校验
jQuery校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&q ...
- jQuery校验validate详解(转)
jQuery校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src=&q ...
随机推荐
- hadoop-cdh with snappy
hadoop: 2.5.0-cdh5.3.6 snappy: 1.1.3 hadoop 2.*不需要hadoop-snappy.只要机器上安装好snappy, 直接编译就可以 编译命令: mvn cl ...
- Python-Day12 Python mysql and ORM
一.Mysql数据库 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据 ...
- 浅谈Objective—C中的面向对象特性
Objective-C世界中的面向对象程序设计 面向对象称程序设计可能是现在最常用的程序设计模式.如何开发实际的程序是存在两个派系的-- 面向对象语言--在过去的几十年中,很多的面向对象语言被发明出来 ...
- 转载: android 学习架构
http://www.cnblogs.com/forlina/archive/2011/06/29/2093332.html 引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWor ...
- CentOS6.0/RedHat Server 6.4安装配置过程 详细图解!
1.准备安装 1.1 系统简介 CentOS 是什么? CentOS是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本.每个版本的 CentOS 都会 ...
- hdu 2544 最短路
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shi ...
- SQL Server中查询用户的对象权限和角色的方法
--SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_h ...
- c++ 性能
http://blog.sina.com.cn/s/blog_4a471ff601013vud.html http://www.linuxidc.com/Linux/2015-06/118874.ht ...
- IOS内存管理「4」- ARC 和垃圾回收机制的基本概念
- VS模板文件修改,自动生成注释
VS的模板文件存放在IDE下的ItemTemplatesCache文件夹下 1.不同VS版本IDE文件夹路径个有不同,下面以VS2012为例,IDE文件夹路径如图: