#9435: WA line:10 (C language)


ShenJing (ShenJing)

學校 : 國立彰化師範大學
編號 : 43431
來源 : [111.252.197.194]
最後登入時間 :
2021-03-25 15:29:06
a020. 身分證檢驗 | From: [1.170.22.242] | 發表日期 : 2014-11-07 22:07

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char input[11];
int sum = 0, i, j;
while (scanf("%s", input) != EOF){
sum = 0;
printf("%d\n", input[0]);
if (input[0] >= 'A' && input[0] <= 'H')
input[0] -= 'A' - 10;
else if (input[0] <= 'N'){
if (input[0] == 'I')
input[0] = 34;
else input[0] -= 'J' - 18;
}
else if (input[0] <= 'V'){
if (input[0] == 'O')
input[0] = 35;
else input[0] -= 'V' - 29;
}
else if (input[0] <= 'Z'){
if (input[0] == 'W')
input[0] = 32;
else input[0] -= 'Z' - 33;
} /*首字母數字轉換完畢*/
sum += input[0] / 10 + input[0] % 10 * 9;
for (i=1, j=8; i<=8; i++, j--){
input[i] -= '0';
sum += input[i] * j;
}
for (i=0; i<10; i++)
printf("%d ", input[i]);
sum += (input[9] -= '0');
printf("\nsum = %d\n", sum);
if ((sum%10) == 0)
printf("real\n");
else printf("fake\n");
 
  }
  system("pause");
     return 0;
}
第 1 測資點(0%): WA (line:10) 
答案不正確
您的答案為: fake 正確答案為: real 
 
一開始沒注意到W變成32,改了之後還是跑出WA……
麻煩各位大大解惑了


 
#9436: Re:WA line:10 (C language)


ShenJing (ShenJing)

學校 : 國立彰化師範大學
編號 : 43431
來源 : [111.252.197.194]
最後登入時間 :
2021-03-25 15:29:06
a020. 身分證檢驗 | From: [1.170.22.242] | 發表日期 : 2014-11-07 22:29

#include
#include
int main(void)
{
char input[11];
int sum = 0, i, j;
while (scanf("%s", input) != EOF){
sum = 0;
printf("%d\n", input[0]);
if (input[0] >= 'A' && input[0] <= 'H')
input[0] -= 'A' - 10;
else if (input[0] <= 'N'){
if (input[0] == 'I')
input[0] = 34;
else input[0] -= 'J' - 18;
}
else if (input[0] <= 'V'){
if (input[0] == 'O')
input[0] = 35;
else input[0] -= 'V' - 29;
}
else if (input[0] <= 'Z'){
if (input[0] == 'W')
input[0] = 32;
else input[0] -= 'Z' - 33;
} /*首字母數字轉換完畢*/
sum += input[0] / 10 + input[0] % 10 * 9;
for (i=1, j=8; i<=8; i++, j--){
input[i] -= '0';
sum += input[i] * j;
}
for (i=0; i<10; i++)
printf("%d ", input[i]);
sum += (input[9] -= '0');
printf("\nsum = %d\n", sum);
if ((sum%10) == 0)
printf("real\n");
else printf("fake\n");
 
  }
  system("pause");
     return 0;
}

紅色字我後來有刪掉,只是用於自己測試觀看結果用的


 
ZeroJudge Forum