C++70分求助!输出不了修改后带有X的ISBN码

P1055 [NOIP2008 普及组] ISBN 号码

你是这么写的: if (sum % 11 == 10) ... else if(sum % 10 != 10) ... else ... 第三种情况永远不会出现,当然不对 改了一下: ```cpp #include<iostream> #include<string> #include<vector> using namespace std; int main() { string ISBN; getline(cin, ISBN); int A[10]; int j = 0; for (int i = 0; i < ISBN.size(); i++) { if ('0' <= ISBN[i] && ISBN[i] <= '9') { A[j] = ISBN[i] - '0'; j++; } } int sum = 0; for (int m = 0; m < 9; m++) { sum += A[m] * (m + 1); } if (sum % 11 == A[9]) { cout << "Right"; } else { if (sum % 11 == 10) { if (ISBN[ISBN.size() - 1] == 'X') { cout << "Right"; } else { ISBN[ISBN.size() - 1] = 'X'; for (int n = 0; n < ISBN.size(); n++) { cout << ISBN[n]; } } } else { ISBN[ISBN.size() - 1] = sum % 11 + '0'; for (int n = 0; n < ISBN.size(); n++) { cout << ISBN[n]; } } return 0; } } ``` 字符串直接cin就行了,不需要getline
by xuyao35 @ 2024-01-22 20:33:13


|