#32450: 純C求救 錯測資#8和#9


89665567k@gmail.com (簡阿頡)


程式碼:

#include<stdio.h>

int main(void)
{
    char id[11],alpha[26]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int a=0,c=0,d=0,e=0; //a為字母轉換後的數字 c為個位數乘9再加上十位數的數字 d為各數字從右到左依次乘1、2、3、4....8的結果 e為最後判斷的數字
    fgets(id,11,stdin);
    for(int i=0;i<8;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-55;
        }
    }
    if(id[0]==alpha[8])
    {
        a=34;
    }
    for(int i=9;i<14;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-56;
            break;
        }
    }
    if(id[0]==alpha[14])
    {
        a=35;
    }
    for(int i=15;i<26;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-57;
            break;
        }
    }
   
    c=((a%10)*9)+(a/10);
    for(int j=1;j<9;j++)
    {
        d=d+((id[9-j]-48)*j);
    }
    e=c+d+(id[9]-48);
    if(e%10==0)
    {
        printf("real");
    }
    else
    {
        printf("fake");
    }

    return 0;
}
求救各路大神,謝謝!!
#32451: Re: 純C求救 錯測資#8和#9


cges30901 (cges30901)


程式碼:

#include

int main(void)
{
    char id[11],alpha[26]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int a=0,c=0,d=0,e=0; //a為字母轉換後的數字 c為個位數乘9再加上十位數的數字 d為各數字從右到左依次乘1、2、3、4....8的結果 e為最後判斷的數字
    fgets(id,11,stdin);
    for(int i=0;i<8;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-55;
        }
    }
    if(id[0]==alpha[8])
    {
        a=34;
    }
    for(int i=9;i<14;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-56;
            break;
        }
    }
    if(id[0]==alpha[14])
    {
        a=35;
    }
    for(int i=15;i<26;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-57;
            break;
        }
    }
   
    c=((a%10)*9)+(a/10);
    for(int j=1;j<9;j++)
    {
        d=d+((id[9-j]-48)*j);
    }
    e=c+d+(id[9]-48);
    if(e%10==0)
    {
        printf("real");
    }
    else
    {
        printf("fake");
    }

    return 0;
}
求救各路大神,謝謝!!

英文WXY錯了

#32454: Re: 純C求救 錯測資#8和#9


89665567k@gmail.com (簡阿頡)


程式碼:

#include

int main(void)
{
    char id[11],alpha[26]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int a=0,c=0,d=0,e=0; //a為字母轉換後的數字 c為個位數乘9再加上十位數的數字 d為各數字從右到左依次乘1、2、3、4....8的結果 e為最後判斷的數字
    fgets(id,11,stdin);
    for(int i=0;i<8;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-55;
        }
    }
    if(id[0]==alpha[8])
    {
        a=34;
    }
    for(int i=9;i<14;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-56;
            break;
        }
    }
    if(id[0]==alpha[14])
    {
        a=35;
    }
    for(int i=15;i<26;i++)
    {
        if(id[0]==alpha[i])
        {
            a=alpha[i]-57;
            break;
        }
    }
   
    c=((a%10)*9)+(a/10);
    for(int j=1;j<9;j++)
    {
        d=d+((id[9-j]-48)*j);
    }
    e=c+d+(id[9]-48);
    if(e%10==0)
    {
        printf("real");
    }
    else
    {
        printf("fake");
    }

    return 0;
}
求救各路大神,謝謝!!

英文WXY錯了

解決了 謝謝你!!