#489: 我在本機用DEV-C++成功,但它卻OLE


trewsla (trewsla)

學校 : 不指定學校
編號 : 2348
來源 : [36.224.217.90]
最後登入時間 :
2016-01-21 18:13:34
a020. 身分證檢驗 | From: [220.228.149.70] | 發表日期 : 2008-08-21 16:35

以下為CODE

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
 int m=0,k=0;
 char a[11];
do
   {
  cin.get(a,11);                  
   for (int i=0;i<=(strlen(a))-1;i++)
     {
     if (a[i]=='\0')
       break;       
     if (a[0]== 'A')
       k=1+0*9;
     else if (a[0]== 'B')
       k=1+1*9;
     else if (a[0]== 'C')
       k=1+2*9;
     else if (a[0]== 'D')
       k=1+3*9;
     else if (a[0]== 'E')
       k=1+4*9;
     else if (a[0]== 'F')
       k=1+5*9;
     else if (a[0]== 'G')
       k=1+6*9;
     else if (a[0]== 'H')
       k=1+7*9;
     else if (a[0]== 'I')
       k=3+4*9;
     else if (a[0]== 'J')
       k=1+8*9;
     else if (a[0]== 'K')
       k=1+9*9;
     else if (a[0]== 'L')
       k=2+0*9;
     else if (a[0]== 'M')
       k=2+1*9;
     else if (a[0]== 'N')
       k=2+2*9;
     else if (a[0]== 'O')
       k=3+5*9;
     else if (a[0]== 'P')
       k=2+3*9;
     else if (a[0]== 'Q')
       k=2+4*9;
     else if (a[0]== 'R')
       k=2+5*9;
     else if (a[0]== 'S')
       k=2+6*9;
     else if (a[0]== 'T')
       k=2+7*9;
     else if (a[0]== 'U')
       k=2+8*9;
     else if (a[0]== 'V')
       k=2+9*9;
     else if (a[0]== 'W')
       k=3+2*9;
     else if (a[0]== 'X')
       k=3+0*9;
     else if (a[0]== 'Y')
       k=3+1*9;
     else if (a[0]== 'Z')
       k=3+3*9;
     if (i == 0)
       m=k;
     else if (i != 0 && i != 9)
       m=(9-i)*(a[i]-48)+m;
     else if (i == 9) 
       m=(a[9]-48)+m;
     }
   if (m%10 ==0)
     cout << "real" << endl;
   else
     cout << "fake" << endl;     
   }while(cin.get()!= EOF);
 return 0;   
}

有大大可以幫我看一下 

我的程式哪邊出了問題嗎 

謝謝

 
#491: Re:我在本機用DEV-C++成功,但它卻OLE


POOHccc ()

學校 : 國立臺中技術學院
編號 : 1139
來源 : [220.135.97.253]
最後登入時間 :
2012-02-04 21:23:42
a020. 身分證檢驗 | From: [220.135.97.253] | 發表日期 : 2008-08-21 16:56

以下為CODE

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
 int m=0,k=0;
 char a[11];
do
   {
  cin.get(a,11);                  
   for (int i=0;i<=(strlen(a))-1;i++)
     {
     if (a[i]=='\0')
       break;       
     if (a[0]== 'A')
       k=1+0*9;
     else if (a[0]== 'B')
       k=1+1*9;
     else if (a[0]== 'C')
       k=1+2*9;
     else if (a[0]== 'D')
       k=1+3*9;
     else if (a[0]== 'E')
       k=1+4*9;
     else if (a[0]== 'F')
       k=1+5*9;
     else if (a[0]== 'G')
       k=1+6*9;
     else if (a[0]== 'H')
       k=1+7*9;
     else if (a[0]== 'I')
       k=3+4*9;
     else if (a[0]== 'J')
       k=1+8*9;
     else if (a[0]== 'K')
       k=1+9*9;
     else if (a[0]== 'L')
       k=2+0*9;
     else if (a[0]== 'M')
       k=2+1*9;
     else if (a[0]== 'N')
       k=2+2*9;
     else if (a[0]== 'O')
       k=3+5*9;
     else if (a[0]== 'P')
       k=2+3*9;
     else if (a[0]== 'Q')
       k=2+4*9;
     else if (a[0]== 'R')
       k=2+5*9;
     else if (a[0]== 'S')
       k=2+6*9;
     else if (a[0]== 'T')
       k=2+7*9;
     else if (a[0]== 'U')
       k=2+8*9;
     else if (a[0]== 'V')
       k=2+9*9;
     else if (a[0]== 'W')
       k=3+2*9;
     else if (a[0]== 'X')
       k=3+0*9;
     else if (a[0]== 'Y')
       k=3+1*9;
     else if (a[0]== 'Z')
       k=3+3*9;
     if (i == 0)
       m=k;
     else if (i != 0 && i != 9)
       m=(9-i)*(a[i]-48)+m;
     else if (i == 9) 
       m=(a[9]-48)+m;
     }
   if (m%10 ==0)
     cout << "real" << endl;
   else
     cout << "fake" << endl;     
   }while(cin.get()!= EOF);
 return 0;   
}

有大大可以幫我看一下 

我的程式哪邊出了問題嗎 

謝謝


假設測資什麼都沒有

那你的程式會預先輸出一組答案,才判斷cin.get()是EOF唷! 

 
#493: Re:我在本機用DEV-C++成功,但它卻OLE


trewsla (trewsla)

學校 : 不指定學校
編號 : 2348
來源 : [36.224.217.90]
最後登入時間 :
2016-01-21 18:13:34
a020. 身分證檢驗 | From: [210.66.39.20] | 發表日期 : 2008-08-21 17:07

以下為CODE

#include <iostream>#include <cstring>using namespace std;int main(){ int m=0,k=0; char a[11];do   {  cin.get(a,11);                      for (int i=0;i<=(strlen(a))-1;i++)     {     if (a[i]=='\0')       break;             if (a[0]== 'A')       k=1+0*9;     else if (a[0]== 'B')       k=1+1*9;     else if (a[0]== 'C')       k=1+2*9;     else if (a[0]== 'D')       k=1+3*9;     else if (a[0]== 'E')       k=1+4*9;     else if (a[0]== 'F')       k=1+5*9;     else if (a[0]== 'G')       k=1+6*9;     else if (a[0]== 'H')       k=1+7*9;     else if (a[0]== 'I')       k=3+4*9;     else if (a[0]== 'J')       k=1+8*9;     else if (a[0]== 'K')       k=1+9*9;     else if (a[0]== 'L')       k=2+0*9;     else if (a[0]== 'M')       k=2+1*9;      else if (a[0]== 'N')       k=2+2*9;     else if (a[0]== 'O')       k=3+5*9;      else if (a[0]== 'P')       k=2+3*9;     else if (a[0]== 'Q')       k=2+4*9;     else if (a[0]== 'R')       k=2+5*9;     else if (a[0]== 'S')       k=2+6*9;     else if (a[0]== 'T')       k=2+7*9;      else if (a[0]== 'U')       k=2+8*9;     else if (a[0]== 'V')       k=2+9*9;     else if (a[0]== 'W')       k=3+2*9;     else if (a[0]== 'X')       k=3+0*9;     else if (a[0]== 'Y')       k=3+1*9;     else if (a[0]== 'Z')       k=3+3*9;     if (i == 0)       m=k;     else if (i != 0 && i != 9)       m=(9-i)*(a[i]-48)+m;     else if (i == 9)         m=(a[9]-48)+m;     }   if (m%10 ==0)     cout << "real" << endl;   else     cout << "fake" << endl;         }while(cin.get()!= EOF); return 0;    }

有大大可以幫我看一下 

我的程式哪邊出了問題嗎 

謝謝 

假設測資什麼都沒有

那你的程式會預先輸出一組答案,才判斷cin.get()是EOF唷! 

===================================

謝謝大大的解答



 
ZeroJudge Forum