一个语句的问题
本帖最后由 御笔剑客 于 2018-9-5 23:44 编辑#include<bits/stdc++.h>
using namespace std;
string a;
int arr;
int main()
{
int t,n,x,y;
cin >> t;
while(t--)
{
int k1,k2;
int step = 0;
cin>>a;
cin >> n;
for(int i = 0; i < n; i++)
cin >>arr;
int len = a.size();
for(int i = 0; i < len; i++)
{
if(a == 'S')
x = i;
if(a == 'E')
y = i;
}
for(int i = x; i < len; i++)
{
if(a != '@')
step++;
else
{
k1=i;
break;
}
}
for(int i = y; i >= 0; i--)
{
if(a != '@')
step++;
else
{
k2=i;
if(k1!=k2)step+=1;//放循环里面就过了
break;
}
}
//if(k1!=k2)step+=1;//放循环外面就所以的测试用例都错误
for(int i = 0; i < n; i++)
{
step -= arr;
if(step <= 0)
{
printf("%s\n", i % 2 == 0 ? "Tabris" : "mengxiang000");
break;
}
}
if(step > 0)
cout << "None" <<endl;
}
return 0;
}
我标红的语句,放在循环里题目就通过了,放在循环外就答案全部错误,这两句放在循环里和循环外有什么区别呢?
https://www.nowcoder.com/acm/contest/23/G题目的地址在这。 本帖最后由 理想小青年 于 2018-9-6 08:38 编辑
代码测试没有问题 循环内与循环外结果相同
下面附上个人调试你的代码
#pragma once
#include <string>
#include <iostream>
using std::string; using std::cin;
using std::cout; using std::endl;
const int ARR_MAX = 10005;
string a = { 0 };
int arr = { 0 };
int main()
{
int t = 0, n = 0, x = 0, y = 0;
cout << "Please input t: ";
cin >> t;
while (t--)
{
int k1 = 0, k2 = 0;
int step = 0;
cout << "Please input a: ";
cin >> a;
cout << "Please input n: ";
cin >> n;
for (int i = 0; i < n; i++)
cin >> arr;
size_t len = a.size();
for (size_t i = 0; i < len; i++)
{
if (a == 'S')
x = i;
else if (a == 'E')
y = i;
}
for (size_t i = x; i < len; i++)
{
if (a != '@')
step++;
else
{
k1 = i;
break;
}
}
for (int i = y; i >= 0; i--)
{
if (a != '@')
step++;
else
{
k2 = i;
//if (k1 != k2)
// step += 1;
break;
}
}
if (k1 != k2)
step += 1;
for (int i = 0; i < n; i++)
{
step -= arr;
if (step <= 0)
{
printf("%s\n", i % 2 == 0 ? "Tabris" : "mengxiang000");
break;
}
}
if (step > 0)
cout << "None" << endl;
}
return 0;
}
为什么在oj上放循环里面就过了,循环外就答案全错呢,我也调试过了,就是没发现啥问题 御笔剑客 发表于 2018-9-6 09:35
为什么在oj上放循环里面就过了,循环外就答案全错呢,我也调试过了,就是没发现啥问题
1. 哥哥是提交上去才报错的吗??
我目前觉得哥哥的代码不完整,还在写,么么
2. clang 支持 <bits/srdc++.h> ? claws0n 发表于 2018-9-6 11:18
1. 哥哥是提交上去才报错的吗??
我目前觉得哥哥的代码不完整,还在写,么么
2. clang 支持?
支持万能头文件,代码是完整的,交到oj才才报错 本帖最后由 claws0n 于 2018-9-6 15:11 编辑
御笔剑客 发表于 2018-9-6 12:50
支持万能头文件,代码是完整的,交到oj才才报错
哥哥,帮你测了,两个都可以~ 可以 御笔剑客 发表于 2018-9-6 12:50
支持万能头文件,代码是完整的,交到oj才才报错
今天研究了一下,在OJ就不行的原因,这个问题与编译有关,有兴趣可以深入一下编译原理
在反汇编层面来看VS做的优化处理都是一样的,看不出什么问题 666
解释得很到位 {:10_254:} {:10_254:} 可以 支持 8 楼,看了其他的网站,是线上 IDE 的问题,比如说简单的空白也会导致错误 可以 可以的 好的 好 学习 可以
页:
[1]
2