#12002: c++求救.......


saintmaple (舜弘郭)

學校 : 國立鳳山高級中學
編號 : 64634
來源 : [140.115.50.48]
最後登入時間 :
2021-03-18 13:33:50
a020. 身分證檢驗 | From: [219.69.82.61] | 發表日期 : 2017-05-07 20:44

自己測試時就過不了了.......但不懂是哪裡出了問題

還請各位大神指教cry

#include <iostream>
#define endl '\n'
using namespace std;
int main(){
char x;
short int a[9],n,sum=0,i;
while(cin>>x){
for(i=0;i<9;i++) cin>>a[i];
switch (x){
case 'A' ... 'H':
n=x-'A'+10;
break;
case 'J' ... 'N':
n=x-'J'+18;
break;
case 'P' ... 'V':
n=x-'P'+23;
break;
case 'I':
n=34;
break;
case 'O':
n=35;
break;
case 'W':
n=32;
break;
case 'X':
n=30;
break;
case 'Y':
n=31;
break;
case 'Z':
n=33;
break;
}
sum+=(n%10)*9+n/10+a[8];
for(i=0;i<8;i++) sum+=a[i]*(8-i);
if(sum%10==0) cout<<"real"<<endl;
else cout<<"fake"<<endl;
cout<<n;
}
}

 
#12003: Re:c++求救.......


anandrewboy70900 (ShowTsai)

學校 : 國立中央大學
編號 : 27736
來源 : [203.204.218.144]
最後登入時間 :
2024-02-07 22:53:10
a020. 身分證檢驗 | From: [140.115.204.235] | 發表日期 : 2017-05-07 22:52

數字不能那樣輸入

把a[]設成char




 
#12004: Re:c++求救.......


anandrewboy70900 (ShowTsai)

學校 : 國立中央大學
編號 : 27736
來源 : [203.204.218.144]
最後登入時間 :
2024-02-07 22:53:10
a020. 身分證檢驗 | From: [140.115.204.235] | 發表日期 : 2017-05-07 22:57

char a[9];

sum+=(n%10)*9+n/10+a[8]-'0';

for(i=0;i<8;i++) sum+=(a[i]-'0')*(8-i);

 

然後記得sum要初始化

 
 
ZeroJudge Forum