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


89665567k@gmail.com (簡阿頡)

學校 : 不指定學校
編號 : 207814
來源 : [140.116.109.132]
最後登入時間 :
2022-10-17 19:55:48
a020. 身分證檢驗 | From: [140.116.131.5] | 發表日期 : 2022-10-11 22:26

程式碼:

#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)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
a020. 身分證檢驗 | From: [59.115.23.108] | 發表日期 : 2022-10-11 22:40

程式碼:

#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 (簡阿頡)

學校 : 不指定學校
編號 : 207814
來源 : [140.116.109.132]
最後登入時間 :
2022-10-17 19:55:48
a020. 身分證檢驗 | From: [140.116.131.5] | 發表日期 : 2022-10-12 13:55

程式碼:

#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錯了

解決了 謝謝你!!

 
ZeroJudge Forum