题目描述
写的孬,屎山代码
一次一次的获取每一个字符getchar
#include <iostream>
using namespace std;
int main(){
int a[15];
char j;
for (int i=0; i<9; i++){
char b = getchar();
if ((int)b == 45){
i--;
continue;
}
a[i] = b - '0';
}
getchar();//后移一位,跳过"-"
j = getchar();//取到最后一位
if (j == 'X') j = 10;
else j -= '0';
int last_word = (int)j;
int cnt = 0;
for(int i=0, k=1;i<9;i++, k++){
cnt += a[i]*k;
}
char c;
bool is_char = false;
if (cnt % 11 != last_word){
if (cnt % 11 == 10){ c = 'X';is_char = true;}
else last_word = cnt % 11;
for (int i=0; i<9; i++){
if (i == 1 || i == 4){
cout << "-";
}
cout << a[i] ;
}
if (is_char){
cout << "-" << c;
}else{
cout << "-" << last_word;
}
}else{
cout << "Right" << endl;
}
return 0;
}
第九行可以改成if (b == ‘-‘)