不使用EOF測試時是對的但是加入EOF後就會重複讀取上一個值,請問我該如何改正呢?
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int b,c,i,t,s=0,h,n,l,g=0,k;
char f;
int num[9];
while(scanf("%c",&f)!=EOF){
scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5],&num[6],&num[7],&num[8]);
for (i=0;i<1;i++)
switch (f)
{
case 'A':
c=10;
break;
case 'B':
c=11;
break;
case 'C':
c=12;
break;
case 'D':
c=13;
break;
case 'E':
c=14;
break;
case 'F':
c=15;
break;
case 'G':
c=16;
break;
case 'H':
c=17;
break;
case 'I':
c=34;
break;
case 'j':
c=18;
break;
case 'K':
c=19;
break;
case 'L':
c=20;
break;
case 'M':
c=21;
break;
case 'N':
c=22;
break;
case 'O':
c=35;
break;
case 'p':
c=23;
break;
case 'Q':
c=24;
break;
case 'R':
c=25;
break;
case 'S':
c=26;
break;
case 'T':
c=27;
break;
case 'U':
c=28;
break;
case 'V':
c=29;
break;
case 'W':
c=32;
break;
case 'X':
c=30;
break;
case 'Y':
c=31;
break;
case 'Z':
c=33;
break;
}
{
h=(c%10)*9;
n=c/10;
t=h+n;
s=num[0]*8+num[1]*7+num[2]*6+num[3]*5+num[4]*4+num[5]*3+num[6]*2+num[7]*1;
l=s+t+num[8];
k=l%10;
}
if (k == 0)
printf("real\n");
else
printf ("fake\n");
}
return 0;
}
不使用EOF測試時是對的但是加入EOF後就會重複讀取上一個值,請問我該如何改正呢?
#include
#include
int main ()
{
int b,c,i,t,s=0,h,n,l,g=0,k;
char f;
int num[9];
while(scanf("%c",&f)!=EOF){
scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5],&num[6],&num[7],&num[8]);
for (i=0;i<1;i++)
switch (f)
{
case 'A':
c=10;
break;
case 'B':
c=11;
break;
case 'C':
c=12;
break;
case 'D':
c=13;
break;
case 'E':
c=14;
break;
case 'F':
c=15;
break;
case 'G':
c=16;
break;
case 'H':
c=17;
break;
case 'I':
c=34;
break;
case 'j':
c=18;
break;
case 'K':
c=19;
break;
case 'L':
c=20;
break;
case 'M':
c=21;
break;
case 'N':
c=22;
break;
case 'O':
c=35;
break;
case 'p':
c=23;
break;
case 'Q':
c=24;
break;
case 'R':
c=25;
break;
case 'S':
c=26;
break;
case 'T':
c=27;
break;
case 'U':
c=28;
break;
case 'V':
c=29;
break;
case 'W':
c=32;
break;
case 'X':
c=30;
break;
case 'Y':
c=31;
break;
case 'Z':
c=33;
break;
}
{
h=(c%10)*9;
n=c/10;
t=h+n;
s=num[0]*8+num[1]*7+num[2]*6+num[3]*5+num[4]*4+num[5]*3+num[6]*2+num[7]*1;
l=s+t+num[8];
k=l%10;
}
if (k == 0)
printf("real\n");
else
printf ("fake\n");
}
return 0;
}
while(scanf("(空白)%c",&f)!=EOF) 這一行稍微這樣修改就行了
不使用EOF測試時是對的但是加入EOF後就會重複讀取上一個值,請問我該如何改正呢?
#include
#include
int main ()
{
int b,c,i,t,s=0,h,n,l,g=0,k;
char f;
int num[9];
while(scanf("%c",&f)!=EOF){
scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5],&num[6],&num[7],&num[8]);
for (i=0;i<1;i++)
switch (f)
{
case 'A':
c=10;
break;
case 'B':
c=11;
break;
case 'C':
c=12;
break;
case 'D':
c=13;
break;
case 'E':
c=14;
break;
case 'F':
c=15;
break;
case 'G':
c=16;
break;
case 'H':
c=17;
break;
case 'I':
c=34;
break;
case 'j':
c=18;
break;
case 'K':
c=19;
break;
case 'L':
c=20;
break;
case 'M':
c=21;
break;
case 'N':
c=22;
break;
case 'O':
c=35;
break;
case 'p':
c=23;
break;
case 'Q':
c=24;
break;
case 'R':
c=25;
break;
case 'S':
c=26;
break;
case 'T':
c=27;
break;
case 'U':
c=28;
break;
case 'V':
c=29;
break;
case 'W':
c=32;
break;
case 'X':
c=30;
break;
case 'Y':
c=31;
break;
case 'Z':
c=33;
break;
}
{
h=(c%10)*9;
n=c/10;
t=h+n;
s=num[0]*8+num[1]*7+num[2]*6+num[3]*5+num[4]*4+num[5]*3+num[6]*2+num[7]*1;
l=s+t+num[8];
k=l%10;
}
if (k == 0)
printf("real\n");
else
printf ("fake\n");
}
return 0;
}
while(scanf("(空白)%c",&f)!=EOF) 這一行稍微這樣修改就行了
雖然還是WA 不過非常謝謝你。
不使用EOF測試時是對的但是加入EOF後就會重複讀取上一個值,請問我該如何改正呢?
#include
#include
int main ()
{
int b,c,i,t,s=0,h,n,l,g=0,k;
char f;
int num[9];
while(scanf("%c",&f)!=EOF){
scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5],&num[6],&num[7],&num[8]);
for (i=0;i<1;i++)
switch (f)
{
case 'A':
c=10;
break;
case 'B':
c=11;
break;
case 'C':
c=12;
break;
case 'D':
c=13;
break;
case 'E':
c=14;
break;
case 'F':
c=15;
break;
case 'G':
c=16;
break;
case 'H':
c=17;
break;
case 'I':
c=34;
break;
case 'j':
c=18;
break;
case 'K':
c=19;
break;
case 'L':
c=20;
break;
case 'M':
c=21;
break;
case 'N':
c=22;
break;
case 'O':
c=35;
break;
case 'p':
c=23;
break;
case 'Q':
c=24;
break;
case 'R':
c=25;
break;
case 'S':
c=26;
break;
case 'T':
c=27;
break;
case 'U':
c=28;
break;
case 'V':
c=29;
break;
case 'W':
c=32;
break;
case 'X':
c=30;
break;
case 'Y':
c=31;
break;
case 'Z':
c=33;
break;
}
{
h=(c%10)*9;
n=c/10;
t=h+n;
s=num[0]*8+num[1]*7+num[2]*6+num[3]*5+num[4]*4+num[5]*3+num[6]*2+num[7]*1;
l=s+t+num[8];
k=l%10;
}
if (k == 0)
printf("real\n");
else
printf ("fake\n");
}
return 0;
}
while(scanf("(空白)%c",&f)!=EOF) 這一行稍微這樣修改就行了
雖然還是WA 不過非常謝謝你。
其實你仔細看看 你的switch裡面 case J 和 case P 這兩個都打成小寫了, 還有while loop裡面的第一個 for loop 其實是多餘的
想法其實可以再改進 讓程式的大小縮到70kb左右
不使用EOF測試時是對的但是加入EOF後就會重複讀取上一個值,請問我該如何改正呢?
#include
#include
int main ()
{
int b,c,i,t,s=0,h,n,l,g=0,k;
char f;
int num[9];
while(scanf("%c",&f)!=EOF){
scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5],&num[6],&num[7],&num[8]);
for (i=0;i<1;i++)
switch (f)
{
case 'A':
c=10;
break;
case 'B':
c=11;
break;
case 'C':
c=12;
break;
case 'D':
c=13;
break;
case 'E':
c=14;
break;
case 'F':
c=15;
break;
case 'G':
c=16;
break;
case 'H':
c=17;
break;
case 'I':
c=34;
break;
case 'j':
c=18;
break;
case 'K':
c=19;
break;
case 'L':
c=20;
break;
case 'M':
c=21;
break;
case 'N':
c=22;
break;
case 'O':
c=35;
break;
case 'p':
c=23;
break;
case 'Q':
c=24;
break;
case 'R':
c=25;
break;
case 'S':
c=26;
break;
case 'T':
c=27;
break;
case 'U':
c=28;
break;
case 'V':
c=29;
break;
case 'W':
c=32;
break;
case 'X':
c=30;
break;
case 'Y':
c=31;
break;
case 'Z':
c=33;
break;
}
{
h=(c%10)*9;
n=c/10;
t=h+n;
s=num[0]*8+num[1]*7+num[2]*6+num[3]*5+num[4]*4+num[5]*3+num[6]*2+num[7]*1;
l=s+t+num[8];
k=l%10;
}
if (k == 0)
printf("real\n");
else
printf ("fake\n");
}
return 0;
}
while(scanf("(空白)%c",&f)!=EOF) 這一行稍微這樣修改就行了
雖然還是WA 不過非常謝謝你。
其實你仔細看看 你的switch裡面 case J 和 case P 這兩個都打成小寫了, 還有while loop裡面的第一個 for loop 其實是多餘的
想法其實可以再改進 讓程式的大小縮到70kb左右
不使用EOF測試時是對的但是加入EOF後就會重複讀取上一個值,請問我該如何改正呢?
#include
#include
int main ()
{
int b,c,i,t,s=0,h,n,l,g=0,k;
char f;
int num[9];
while(scanf("%c",&f)!=EOF){
scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5],&num[6],&num[7],&num[8]);
for (i=0;i<1;i++)
switch (f)
{
case 'A':
c=10;
break;
case 'B':
c=11;
break;
case 'C':
c=12;
break;
case 'D':
c=13;
break;
case 'E':
c=14;
break;
case 'F':
c=15;
break;
case 'G':
c=16;
break;
case 'H':
c=17;
break;
case 'I':
c=34;
break;
case 'j':
c=18;
break;
case 'K':
c=19;
break;
case 'L':
c=20;
break;
case 'M':
c=21;
break;
case 'N':
c=22;
break;
case 'O':
c=35;
break;
case 'p':
c=23;
break;
case 'Q':
c=24;
break;
case 'R':
c=25;
break;
case 'S':
c=26;
break;
case 'T':
c=27;
break;
case 'U':
c=28;
break;
case 'V':
c=29;
break;
case 'W':
c=32;
break;
case 'X':
c=30;
break;
case 'Y':
c=31;
break;
case 'Z':
c=33;
break;
}
{
h=(c%10)*9;
n=c/10;
t=h+n;
s=num[0]*8+num[1]*7+num[2]*6+num[3]*5+num[4]*4+num[5]*3+num[6]*2+num[7]*1;
l=s+t+num[8];
k=l%10;
}
if (k == 0)
printf("real\n");
else
printf ("fake\n");
}
return 0;
}
while(scanf("(空白)%c",&f)!=EOF) 這一行稍微這樣修改就行了
雖然還是WA 不過非常謝謝你。
其實你仔細看看 你的switch裡面 case J 和 case P 這兩個都打成小寫了, 還有while loop裡面的第一個 for loop 其實是多餘的
想法其實可以再改進 讓程式的大小縮到70kb左右
while(scanf("(空白)%c",&f)!=EOF) 這一行稍微這樣修改就行了
不使用EOF測試時是對的但是加入EOF後就會重複讀取上一個值,請問我該如何改正呢?
#include
#include
int main ()
{
int b,c,i,t,s=0,h,n,l,g=0,k;
char f;
int num[9];
while(scanf("%c",&f)!=EOF){
scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d",&num[0],&num[1],&num[2],&num[3],&num[4],&num[5],&num[6],&num[7],&num[8]);
for (i=0;i<1;i++)
switch (f)
{
case 'A':
c=10;
break;
case 'B':
c=11;
break;
case 'C':
c=12;
break;
case 'D':
c=13;
break;
case 'E':
c=14;
break;
case 'F':
c=15;
break;
case 'G':
c=16;
break;
case 'H':
c=17;
break;
case 'I':
c=34;
break;
case 'j':
c=18;
break;
case 'K':
c=19;
break;
case 'L':
c=20;
break;
case 'M':
c=21;
break;
case 'N':
c=22;
break;
case 'O':
c=35;
break;
case 'p':
c=23;
break;
case 'Q':
c=24;
break;
case 'R':
c=25;
break;
case 'S':
c=26;
break;
case 'T':
c=27;
break;
case 'U':
c=28;
break;
case 'V':
c=29;
break;
case 'W':
c=32;
break;
case 'X':
c=30;
break;
case 'Y':
c=31;
break;
case 'Z':
c=33;
break;
}
{
h=(c%10)*9;
n=c/10;
t=h+n;
s=num[0]*8+num[1]*7+num[2]*6+num[3]*5+num[4]*4+num[5]*3+num[6]*2+num[7]*1;
l=s+t+num[8];
k=l%10;
}
if (k == 0)
printf("real\n");
else
printf ("fake\n");
}
return 0;
}
while(scanf("(空白)%c",&f)!=EOF) 這一行稍微這樣修改就行了
雖然還是WA 不過非常謝謝你。