#5566: real和fake顛倒


linux_lego (bananaboy)

學校 : 臺中市私立明道高級中學
編號 : 13113
來源 : [114.41.120.247]
最後登入時間 :
2013-09-28 10:23:50
a020. 身分證檢驗 | From: [114.38.102.57] | 發表日期 : 2011-08-11 21:59

#include <stdio.h>
#include <stdlib.h>

                    
int main(int argc, char *argv[])
    
{
int h,sum;
int a,p,aa[19];
char s[20];
do
    {
        sum=0;
                scanf("%s",&s);

                if(s[1]!='1'&&s[1]!='2')
        {    printf("fake\n");
                        return 0;
        }

        switch(s[0])
        {
            case 'A' :aa[19]=1;break;
            case 'B' :aa[19]=10;break;
            case 'C' :aa[19]=19;break;
            case 'D' :aa[19]=28;break;
            case 'E' :aa[19]=37;break;
            case 'F' :aa[19]=46;break;
            case 'G' :aa[19]=55;break;
            case 'H' :aa[19]=64;break;
            case 'I' :aa[19]=39;break;
            case 'J' :aa[19]=73;break;
            case 'K' :aa[19]=82;break;
            case 'L' :aa[19]=2;break;
            case 'M' :aa[19]=11;break;
            case 'N' :aa[19]=20;break;
            case 'O' :aa[19]=48;break;
            case 'P' :aa[19]=29;break;
            case 'Q' :aa[19]=38;break;
            case 'R' :aa[19]=47;break;
            case 'S' :aa[19]=56;break;
            case 'T' :aa[19]=65;break;
            case 'U' :aa[19]=74;break;
            case 'V' :aa[19]=83;break;
            case 'W' :aa[19]=21;break;
            case 'X' :aa[19]=3;break;
            case 'Y' :aa[19]=12;break;
            case 'Z' :aa[19]=30;break;
        }

        for(a=1;a<10;a++)
        {
            switch(s[a])
            {
                case '1':aa[a-1]=1;break;    
                case '2':aa[a-1]=2;break;    
                case '3':aa[a-1]=3;break;        
                case '4':aa[a-1]=4;break;        
                case '5':aa[a-1]=5;break;        
                case '6':aa[a-1]=6;break;
                case '7':aa[a-1]=7;break;
                case '8':aa[a-1]=8;break;
                case '9':aa[a-1]=9;break;
                case '0':aa[a-1]=0;break;
            }    
        }

        for(p=0;p<8;p++)
        sum=sum+aa[p]*(8-p);                
        sum=sum+aa[8];
                sum=sum+aa[19];
                printf("%d",sum);
        if((sum%10)!=0)                        
            printf("fake\n");
        else
            printf("real\n");
sum=0;

    }while(scanf("%s",&s)!=EOF);               
   
  return 0;
}
以上是原始碼,如果照原樣,會在line2出現w/a

如果把do...while改成while,則是第一行出現w/a

請求幫忙

謝謝

 

 
#5590: Re:real和fake顛倒


linux_lego (bananaboy)

學校 : 臺中市私立明道高級中學
編號 : 13113
來源 : [114.41.120.247]
最後登入時間 :
2013-09-28 10:23:50
a020. 身分證檢驗 | From: [140.128.156.252] | 發表日期 : 2011-08-15 15:58

oops

問題已經解決了 


 
ZeroJudge Forum