思路其实很简单,输入号码到数组里再转化一个进行操作比对即可
但是其实还可以优化,即巧用字符常量,这样避免了过多的的字符串转化操作
让人联想到紫书里敲键盘的那题
洛谷题解【BY Alg_xize】#include新知识using namespace std; int main(){ char a[14],mod[12]="0123456789X"; scanf("%s",a); int i,j=1,t=0; for(i=0;i<12;i++){ if(a[i]=='-') continue; t+=(a[i]-48)*j++; } if(mod[t%11]==a[12]) cout<<"Right"; else{ a[12]=mod[t%11]; printf("%s",a); /*for(int i=0;i<13;i++){ cout<
1、要将字符字符数字转化成整型只需减去'0'即可('0'的ASCII码即为48)
2、疏忽了字符串自动补' '所以在分配内存时要多留一位
3、用scanf读取数组指针不用循环(但是在vs上这里会报错不知道为啥)
【scanf 不能用来读取有空格的字符串 在扫描到空白时会zi'do】



