#8137: C語言--不知道錯在哪...


a01456655 (Jim)


只跟我說

WA (line:5)
答案不正確
您的答案為: fake 

正確答案為: real

我根本不知道錯在哪。。。

這樣要如何找起啊。。。。。 

#8138: Re:C語言--不知道錯在哪...


a01456655 (Jim)


程式碼如下:

#include<stdio.h>

int main()

{

    char input[11];

    while( scanf("%s",input) != EOF)

    {

        int i=0,j=10,k=0,temp=65,num=0,len=strlen(input);

        switch(input[0])

        {

          case 73:

               j=34;

               break;

          case 79:

               j=35;

               break;

          case 87:

               j=32;

               break;

          case 90:

               j=33;

               break;

          default:

               while(input[0]!=temp)

               {

                  temp++;

                  j++;

               }

        }

      if(input[0]>73 && input[0]<79)

      {

        j=((j-1)%10)*9+j/10;

      }

      else if(input[0]>79 && input[0]<87)

      {

        j=((j-2)%10)*9+j/10;

      }

      else if(input[0]>87 && input[0]<90)

      {

        j=((j-3)%10)*9+j/10;

      }

      else

      {

        j=(j%10)*9+j/10;

      }

      

      i=1;

      while(i<len-1)

      {

        k+=(input[i]-48)*(len-i-1);

        i++;

      }

      switch ((j+k+input[9]-48)%10)

      {

        case 0:

             printf("real\n");

             break;

        default:

             printf("fake\n");

             break;

      }

    }    

    return 0;

}

 

#8139: Re:C語言--不知道錯在哪...


austin990301 (王彥仁)


程式碼如下:

#include

int main()

{

    char input[11];

    while( scanf("%s",input) != EOF)

    {

        int i=0,j=10,k=0,temp=65,num=0,len=strlen(input);

        switch(input[0])

        {

          case 73:

               j=34;

               break;

          case 79:

               j=35;

               break;

          case 87:

               j=32;

               break;

          case 90:

               j=33;

               break;

          default:

               while(input[0]!=temp)

               {

                  temp++;

                  j++;

               }

        }

      if(input[0]>73 && input[0]<79)

      {

        j=((j-1)%10)*9+j/10;

      }

      else if(input[0]>79 && input[0]<87)

      {

        j=((j-2)%10)*9+j/10;

      }

      else if(input[0]>87 && input[0]<90)

      {

        j=((j-3)%10)*9+j/10;

      }

      else

      {

        j=(j%10)*9+j/10;

      }

 

      i=1;

      while(i

      {

        k+=(input[i]-48)*(len-i-1);

        i++;

      }

      switch ((j+k+input[9]-48)%10)

      {

        case 0:

             printf("real\n");

             break;

        default:

             printf("fake\n");

             break;

      }

    }    

    return 0;

}

 

這是一個沒有跳出的死迴圈,需加break跳出!