求大佬看看50分的程序 P1200你的飞碟在这

P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

你不用`switch`,直接`c[i2]-'A'+1`即可
by _Herobrine_ @ 2020-02-05 20:29:24


@[qjyz202268](/user/312929) 这是根据你的代码调的,已经AC,有三处问题,和原来的对照一下吧 ```cpp #include <iostream> #include <string> using namespace std; string a, b; char c[8]; int a1[8]; int main() { int i2, i1, m; long long int ren = 1, xin = 1; bool x = 0; cin >> a >> b; m = a.length(); i1 = b.length(); st: for (i2 = 0; i2 < m; i2++) { if (x == 0) c[i2] = a[i2]; else c[i2] = b[i2]; switch (c[i2]) { case 'A': a1[i2] = 1; break; case 'B': a1[i2] = 2; break; case 'C': a1[i2] = 3; break; case 'D': a1[i2] = 4; break; case 'E': a1[i2] = 5; break; case 'F': a1[i2] = 6; break; case 'G': a1[i2] = 7; break; case 'H': a1[i2] = 8; break; case 'I': a1[i2] = 9; break; case 'J': a1[i2] = 10; break; case 'K': a1[i2] = 11; break; case 'L': a1[i2] = 12; break; case 'M': a1[i2] = 13; break; case 'N': a1[i2] = 14; break; case 'O': a1[i2] = 15; break; case 'P': a1[i2] = 16; break; case 'Q': a1[i2] = 17; break; case 'R': a1[i2] = 18; break; case 'S': a1[i2] = 19; break; case 'T': a1[i2] = 20; break; case 'U': a1[i2] = 21; break; case 'V': a1[i2] = 22; break; case 'W': a1[i2] = 23; break; case 'X': a1[i2] = 24; break; case 'Y': a1[i2] = 25; break; case 'Z': a1[i2] = 26; break; } if (x == 0) xin *= a1[i2]; else ren *= a1[i2]; } m = i1; if (x == 0) { x = 1; goto st; } if (ren % 47 == xin % 47) cout << "GO"; else cout << "STAY"; return 0; } ```
by Sophon @ 2020-02-05 20:45:23


你怕是不知道有ASCII这种东西。。。 还有你的switch不用break的吗?
by PragmaGCC @ 2020-02-05 20:46:32


@[Sophon](/user/159730) 谢谢,又是粗心了。???
by 鄙人逆水行舟 @ 2020-02-05 21:23:44


|