您的位置:首页 > 编程语言 > C语言/C++

蓝桥杯 C++ 验证18身份证

2013-12-08 13:39 423 查看
//本人是根据题目分析做的答案,可能不同的人对题目理解不也一样但是程序结构基本一致;

//输入18位数字,要求奇数位的数字和平均值x,偶数位的数字乘以3 后个位数字和平均值y

//x+y 的值如是10的倍数则返回正确否则返回错误:

#include"iostream.h"

#include"stdio.h"

main()

{ cout<<"insert:"<<endl;

int a[18],count=0,coun=0,c,sum=0,cn,i=0;

double x,y;

for(i;i<18;i++)

a[i]=(int)getchar()-48;

for(int j=1;j<18;j+=2)

count=count+a[j];

x=(count*1.0)/9;

for(int z=0;z<18;z+=2)

{ coun=(a[z]*3);

if(coun<10)cn=coun;

else cn=coun%10;

sum=cn+sum;

}

y=(sum*1.0)/9;

c=(int)(x+y);

if(c%10==0)cout<<"正确"<<endl;

else cout<<"错误"<<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: