#41097: 請問這樣寫錯在哪阿?(C++)


shawn930212@gmail.com (郭星諭)

學校 : 不指定學校
編號 : 275573
來源 : [42.72.253.228]
最後登入時間 :
2025-06-22 20:26:48

#include <iostream>
using namespace std;
int main()
{
    char city;
    int sum=0;
    int array[9]={0};
    cin>>city;
    for(int i=0;i<9;i++)
    {
        cin>>array[i];
    }
    //用ASCII CODE 將char轉成integer
    if(city >= 65 && city <= 72) //deal with A-H
        city-= 55;
    else if(city == 'I')
        city -= 39;
    else if(city >= 74 && city <= 78)
        city -= 56;
    else if(city == 'O')
        city -= 44;
    else if(city >= 80 && city <= 86)
        city -= 57;
    else if(city == 'W')
        city -= 55;
    else if(city == 'X' || city == 'Y')
        city -= 58;
    else if(city == 'Z')
        city -= 57;
    sum=9*(city%10)+(city/10);
    for(int n=0;n<8;n++)
    {
        sum=array[n]*(8-n)+sum;
    }
    sum=sum+array[8];

    if(sum%10 == 0)
        printf("real");
    else
        printf("fake");

    return 0;
}
#41122: Re: 請問這樣寫錯在哪阿?(C++)


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.12.66.21]
最後登入時間 :
2025-04-20 17:19:22

 
    int array[9]={0};
    cin>>city;
    for(int i=0;i<9;i++)
    {
        cin>>array[i];
    }


你輸入用int,程式會把身分證的9位數當成一個整數