对我面向对象的能力越来越喜欢了,对于抽离函数的能力,自认为已经算是比较强大的了!当然,还远远不够咯,但是这一切都是慢慢来的,发现我挺喜欢面向对象的,但是我又不喜欢C++,哈哈,题外话不说了。
这一题其实比较简单,估计也没几个不能AC的,但是我就提交了两次,因为当不输出Right的时候我没把isbn输出,而只输出了最后的尾数。
#include <stdio.h>
int ans = 0;
/
Mistack 2:
当不输出Right时要输出的是完整的isbn号, 而不是单单尾数.
/
char str[14];
int now;
/
Mistack 1:
下面的函数应该是读取n个数, 但是从主函数是独立出来的时候忘记修改循环次数为n而不是3了
/
void deal(int n)
{
static int count = 1;
int i, c;
for(i = 1; i <= n; i++, now++){
c = str[now] – ‘0’;
ans += c * (count++);
}
now++;
}
int main(void)
{
int c;
scanf("%s", &str);
deal(1), deal(3), deal(5);
ans %= 11;
c = str[now];
if(c == ‘X’){
c = 10;
}else{
c -= ‘0’;
}
if(c != ans){
str[now] = ‘\0’;
printf("%s", str);
if(ans == 10){
printf("X\n");
}else{
printf("%d\n", ans);
}
}else{
printf("Right\n");
}
return 0;
}