请求大佬支援

P1055 [NOIP2008 普及组] ISBN 号码

xīn磊 @ 2021-10-01 21:05:52


#include<bits/stdc++.h>

using namespace std;

char ISBN[12],last;
int k=0,sum=0;

int main()
{
    cin>>ISBN;//scanf("%s",ISBN);

    for(int i=0;i<=12;i++)
    {
        if(ISBN[i]!='-')
        {
            k++;//计数器 123456......
            sum+=k*(ISBN[i]-'0');//把字符转化成数字 
        } 
    }

    sum%=11;

    if(sum==10)
        last='X';
    else
        last=sum+'0';//把数字转换为字符 

    if(last==ISBN[12])
        cout<<"Right"<<endl;//printf("Right\n");
    else
        {
            ISBN[12]=last;
            cout<<ISBN;//printf("%s\n",ISBN);
        }

    return 0;
}

by mengtian_ @ 2021-10-03 09:51:13

先发一下正确代码(已AC)

#include<bits/stdc++.h>
using namespace std;
char ISBN[12],last;
int k=0,sum=0,i;
int main()
{
    cin>>ISBN;//scanf("%s",ISBN);
    i=ISBN[12];
    for(int i=0;i<12;i++)
    {
        if(ISBN[i]!='-')
        {
            k++;//计数器 123456......
            sum+=k*(ISBN[i]-'0');//把字符转化成数字 
        } 
    }
    //cout<<sum<<endl;
    sum%=11;
    if(sum==10)
        last='X';
    else
        last=sum+'0';//把数字转换为字符 
    if(last==i)
        cout<<"Right"<<endl;//printf("Right\n");
    else
        {
            ISBN[i]=last;
                   cout<<ISBN;//printf("%s\n",ISBN);

   }

  return 0;
}

改代码

我不会告诉你我改了一个小时


|