50分

P1055 [NOIP2008 普及组] ISBN 号码

福明o7 @ 2021-10-09 22:05:57

用switch case 做的,莫名其妙50分

#include<bits/stdc++.h>
using namespace std;
string n;
int a,b,c,d,e,f,g,h,i;
int ans;
int sum;
int zb(int ans){
    if (ans<9) return ans;
    if (ans=88) return ans;
}
int main(){
    getline(cin,n);
    for (int j=0;j<=n.size();j++){
        switch(j){
            case 0:a=n[j]-'0';break;
            case 2:b=n[j]-'0';break;
            case 3:c=n[j]-'0';break;
            case 4:d=n[j]-'0';break;
            case 6:e=n[j]-'0';break;
            case 7:f=n[j]-'0';break;
            case 8:g=n[j]-'0';break;
            case 9:h=n[j]-'0';break;
            case 10:i=n[j]-'0';break;
            case 12:{
                ans=n[j];
                if (ans<88) ans = ans-'0';
                else ans = ans-0;
                break;
            }
        }
    }
    sum = a*1+b*2+c*3+d*4+e*5+f*6+g*7+h*8+i*9;
    sum%=11;
    sum = zb(sum);
    if (sum==ans) printf("%s","Right");
    else{
        ans = sum;
        for (int j=0;j<=n.size();j++){
            switch(j){
                case 0:printf("%d",0);break;
                case 1:printf("%c",'-');break;
                case 2:printf("%d",b);break;
                case 3:printf("%d",c);break;
                case 4:printf("%d",d);break;
                case 5:printf("%c",'-');break;
                case 6:printf("%d",e);break;
                case 7:printf("%d",f);break;
                case 8:printf("%d",g);break;
                case 9:printf("%d",h);break;
                case 10:printf("%d",i);break;
                case 11:printf("%c",'-');break;
                case 12:{
                    if (ans<9) printf("%d",ans);
                    else printf("%c",ans); 
                    break;
                }
                }
            } 
        }
    return 0;
}

求更改


by 天有不测风云 @ 2021-10-09 22:15:16

@福明o7 你这代码写的那叫一个奇怪啊

zb 函数改为:

int zb(int ans){
    if (ans<=9) return ans;
    if (ans==10) return 'X';
}

第 27 行的 else ans = ans-0; 可以删掉。

第 40 行改为 case 0:printf("%d",a);break;


by wjj255 @ 2021-10-09 22:16:14

第四十行应改为

case 0:printf("%d",a);break;

by wjj255 @ 2021-10-09 22:18:18

@天有不测风云 zb函数应该不影响运行吧


by 福明o7 @ 2021-10-09 22:20:50

关于我被一个a卡了两天这档事 过了,谢谢大佬


by 天有不测风云 @ 2021-10-09 22:25:19

@wjj255 看了半天,好像确实没有问题

这 zb 函数写得属实迷惑!!!这故意坑来调试的人吧……


|