C++ 特克斯引用了UVa问题272,错误答案和正确答案

C++ 特克斯引用了UVa问题272,错误答案和正确答案,c++,string,algorithm,c++11,char,C++,String,Algorithm,C++11,Char,我指的是这个问题。这个问题很简单,不言自明。我做了两次尝试,其中一次被接受,另一次给出了错误的答案 被选中的代码在下面,我一个字符一个字符地输入和输出 #include <bits/stdc++.h> using namespace std; int main() { char c; int flag = 0; while((c = getchar())!=EOF) { if(c == '\"') { if(

我指的是这个问题。这个问题很简单,不言自明。我做了两次尝试,其中一次被接受,另一次给出了错误的答案

被选中的代码在下面,我一个字符一个字符地输入和输出

#include <bits/stdc++.h>
using namespace std;

int main() {
    char c;
    int flag = 0;
    while((c = getchar())!=EOF) {
        if(c == '\"') {
            if(flag) {
                cout<<'\''<<'\'';
                flag = 0;
            }
            else {
                cout<<'`'<<'`';
                flag = 1;
            }
        }
        else {
            cout<<c;
        }
    }
    return 0;
}
#包括
使用名称空间std;
int main(){
字符c;
int标志=0;
而((c=getchar())!=EOF){
如果(c=='\'){
国际单项体育联合会(旗){

你能写一个测试来比较两个代码的实际输出和预期输出吗?是的,差异输出没有显示任何变化。问题是你的问题是“一些在线判断报告:错误答案”,这是其他人无法复制的(不创建帐户和登录)。你应该试着找出一个输出不同的测试用例,如果你不能做到这一点,为什么还要在别人不能告诉你代码的错误时抱怨你的代码呢;)更严重的是,我实际上试着看到不同输入的差异,但我找不到任何差异。在线评委通常会使用角落案例来捕捉细微的错误。您需要找到显示错误的角落案例(如果有),因为您无法修复不知道要修复什么的错误。如果输入流以
\n
结尾,则第一个程序输出它,但第二个程序不输出。它只在行之间发出
\n
,而不是在最后一行的结尾。
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    int flag = 0, c = 0;
    while(getline(cin, s)) {

        if(c) {cout<<'\n';}     //don't print newline first time
        c=1;

        for(auto& x : s) {
            if(x == '\"') {
                if(flag) {
                    cout<<'\''<<'\'';
                    flag = 0;
                }
                else {
                    cout<<'`'<<'`';
                    flag = 1;
                }
            }
            else {
                cout<<x;
            }
        }
    }
    return 0;
}