P1055 ISBN号码

题目的思路很简单,先将9个数字求和,然后对11取余,如果余数等于10则识别码为‘X’
否则为余数,在判断是不是等于所输入数字字符串中最后一个数的值;

#include<iostream> #include<bits/stdc++.h> #include<algorithm> using namespace std; int main() { char a[20],t; int sum=0,flag=1; for(int c=0;c<13;c++) { cin>>a[c]; }/*输入字符串*/ for(int i=0;i<strlen(a)-1;i++) { if(a[i]>='0'&&a[i]<='9') { sum+=flag*(a[i]-'0'); flag++; } }/*求和*/ t=sum%11+'0'; if(t==10+'0') t='X';/*确认识别码*/
/*判断是否相等*/

if(t==a[12] { cout<<"Right"; } else { for(int j=0;j<strlen(a)-1;j++) { cout<<a[j]; } cout<<t; } return 0; }

这道题之所以写是因为我刚开始输入数组用的是gets,为什么错了呢,因为题目中已经规定了字符串的格式了。

posted @ 2018-06-07 12:14  我啥也不是  阅读(678)  评论(0)    收藏  举报