【发布时间】:2019-12-28 18:50:30
【问题描述】:
问题是 12289 - 来自在线法官https://onlinejudge.org/external/122/12289.pdf 的一二三 我必须将给定的字符串 s 与以下内容进行比较:“一”、“二”、“三”,并返回一个数字,该数字指示哪些字符串在正确位置具有最正确的字符。 以下是我尝试获得可接受的答案。
#include <cstdio>
using namespace std;
int main(){
char c;
int t,len,c1,c2;
scanf("%d\n",&t);
while(t--){
len = 0;
c1 = 0;
c2 = 0;
while(true){
scanf("%c",&c);
if(c=='\n') break;
if("one"[len] == c) c1++;
if("two"[len] == c) c2++;
len++;
}
if(len>3) printf("%d\n",3);
else if (c1>c2) printf("%d\n",1);
else printf("%d\n",2);
}
printf("\n");
}
我在这个问题中得到一个“错误答案”,通常不涉及格式问题。我是 C++ 新手,因此知道我可以改进哪些方面对我有很大帮助。
【问题讨论】:
-
len为 3 或更多时会发生什么????使用调试器。 :-) 提示:"one"[4] -
由于您没有使用任何 C++ 特定功能,您可能希望使用 C 进行编译和编码。C++ 语言有
std::string而 C 没有。 -
程序基本上忽略了我的想法。
3 twoone onetwo twotwo给出 ` 3 3 3 ` -
我是 C++ 新手 -- 在编写任何代码之前,您应该考虑如何解决问题。网站上的问题与 C++ 关系不大。
标签: c++ string-comparison