如果只是求和,就没必要再建一个数组来存放数据了,这点其实前面出现过
#include<stdio.h> #include<string.h> int main() { char isbn[20] ={0}; int i = 0, j = 1, sum = 0; gets(isbn); int len = strlen(isbn); for (i = 0; i < len - 1; i++) { if (isbn[i] != '-') { sum += (isbn[i] - '0') * j; j++; } } int n = sum % 11; if (n == isbn[12] - '0' || (n == 10 && isbn[12] == 'X')) { printf("Right\n"); } else { if (n == 10) { isbn[len - 1] = 'X'; printf("%s", isbn); } else { isbn[len - 1] = n + '0'; printf("%s", isbn); } } return 0; }