跳至正文

tvyj 1006 isbn

  • OI路程

  对我面向对象的能力越来越喜欢了,对于抽离函数的能力,自认为已经算是比较强大的了!当然,还远远不够咯,但是这一切都是慢慢来的,发现我挺喜欢面向对象的,但是我又不喜欢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;
}

发表回复

您的电子邮箱地址不会被公开。