#20557: 想請問一下這樣錯在哪? 前兩個測資都是對的 但第三個就錯了


jojo050872@gmail.com (Yunchiao)

學校 : 高雄市立高雄女子高級中學
編號 : 114657
來源 : [220.132.29.21]
最後登入時間 :
2021-06-01 22:28:31
a020. 身分證檢驗 | From: [220.132.29.21] | 發表日期 : 2020-02-07 03:09

#include <stdio.h>
int ten(int);
int main() {
int a,suit[26] = { 10,11,12,13,14,15,16,17,34,18,19,20,21,22,35,23,24,25,26,27,28,29,32,30,31,33 };
char b[12] = { '\0' }, nu, c, sum = 0;
while(scanf("%s",b)!=EOF){
for (int i = 1; i <= 8; i++)
{
sum = sum + (9 - i) * (char)(b[i]-48);
}
c = b[0] - 'A';
nu = suit[c];
nu = ten(nu);

a = sum + nu+b[9]-48;
if (a % 10 == 0)
printf("real");
else printf("fake");
printf("\n");}
return 0;
}
int ten(int a) {
int b=0;
b = a / 10 + 9 * (a % 10);
return b;
}

 
#20558: Re:想請問一下這樣錯在哪? 前兩個測資都是對的 但第三個就錯了


jojo050872@gmail.com (Yunchiao)

學校 : 高雄市立高雄女子高級中學
編號 : 114657
來源 : [220.132.29.21]
最後登入時間 :
2021-06-01 22:28:31
a020. 身分證檢驗 | From: [220.132.29.21] | 發表日期 : 2020-02-07 03:24

#include
int ten(int);
int main() {
int a,suit[26] = { 10,11,12,13,14,15,16,17,34,18,19,20,21,22,35,23,24,25,26,27,28,29,32,30,31,33 };
char b[12] = { '\0' }, nu, c, sum = 0;
while(scanf("%s",b)!=EOF){
for (int i = 1; i <= 8; i++)
{
sum = sum + (9 - i) * (char)(b[i]-48);
}
c = b[0] - 'A';
nu = suit[c];
nu = ten(nu);

a = sum + nu+b[9]-48;
if (a % 10 == 0)
printf("real");
else printf("fake");
printf("\n");}
return 0;
}
int ten(int a) {
int b=0;
b = a / 10 + 9 * (a % 10);
return b;
}




後來有加sum=0了

 
#20841: Re:想請問一下這樣錯在哪? 前兩個測資都是對的 但第三個就錯了


fire5386 (becaidorz)

學校 : 國立清華大學
編號 : 115822
來源 : [140.114.217.8]
最後登入時間 :
2024-04-13 22:06:23
a020. 身分證檢驗 | From: [114.43.66.70] | 發表日期 : 2020-03-11 19:30

#include
int ten(int);
int main() {
int a,suit[26] = { 10,11,12,13,14,15,16,17,34,18,19,20,21,22,35,23,24,25,26,27,28,29,32,30,31,33 };
char b[12] = { '\0' }, nu, c, sum = 0;
while(scanf("%s",b)!=EOF){
for (int i = 1; i <= 8; i++)
{
sum = sum + (9 - i) * (char)(b[i]-48);
}
c = b[0] - 'A';
nu = suit[c];
nu = ten(nu);

a = sum + nu+b[9]-48;
if (a % 10 == 0)
printf("real");
else printf("fake");
printf("\n");}
return 0;
}
int ten(int a) {
int b=0;
b = a / 10 + 9 * (a % 10);
return b;
}




後來有加sum=0了

可以參考一下


https://66lemon66.blogspot.com/2020/03/zerojudge-a020-c.html

 
ZeroJudge Forum