作者hello881g (风)
看板C_and_CPP
标题[问题] xcode打不开但在vs上却打的开
时间Thu Oct 22 12:07:19 2015
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
#include <iostream>
using namespace std;
#include <queue>
#include <vector>
#include<fstream>
#include<stack>
void BFS(int StartNode, vector<vector<bool>> adj, int nodeNum){
int *preNode = new int[nodeNum];
bool *endNode = new bool[nodeNum];
bool *visit = new bool[nodeNum];
for (int i = 0; i < nodeNum; i++){
endNode[i] = true;
preNode[i] = -100;
visit[i] = false;
}
preNode[StartNode] = StartNode;
queue<int> q;
// int k = 0;
/*for (int k = 0; k<nodeNum; k++)
if (!visit[k])
{*/
// 一、把起点放入queue。
q.push(StartNode);
visit[StartNode] = true;
// 二、重复下述两点,直到queue里面没有东西为止:
while (!q.empty())
{
// 甲、从queue当中取出一点。
int i = q.front();
q.pop();
// 乙、找出跟此点相邻的点,并且尚未遍历的点,
// 依照编号顺序通通放入queue。
for (int j = 0; j<nodeNum; j++)
if (adj[i][j] && !visit[j])
{
q.push(j);
preNode[j] = i;
endNode[i] = false;
visit[j] = true;
}
}
//}
cout << "i:" << (StartNode + 1) << endl;
for (int k = 0; k < nodeNum; k++){
//cout << "k:" << (k + 1) << endl;
stack<int> s;
int node = k;
s.push(k);
int haha = 0;
while (node != StartNode &&node != 0)
{
if (preNode[node] < 0)
break;
s.push(preNode[node]);
node = preNode[node];
if (node == StartNode)
haha = 1;
}
if (haha == 1){
while (!s.empty()){
cout << " v" << (s.top() + 1) << " ";
s.pop();
}
cout << endl;
}
}
//cout << "i:"<<i << endl;
}
int main()
{
int a, b; // 临时用的
int minNode = 1000;//最小点号码
int maxNode = 0;//最大点号码
vector<int> sN, eN;// 每个边的StartNode 和 EndNote
//输入txt档
fstream fin;
fin.open("test.txt", ios::in);
while (fin >> a >> b){
if (a < minNode)
minNode = a;
if (b < minNode)
minNode = b;
if (a> maxNode)
maxNode = a;
if (b > maxNode)
maxNode = b;
sN.push_back(a);
eN.push_back(b);
}
int nodeNum = maxNode - minNode + 1;
vector<vector <bool>> adj;
adj.resize(nodeNum);
for (int i = 0; i < nodeNum; i++){
adj[i].resize(nodeNum);
for (int j = 0; j < nodeNum; j++){
adj[i][j] = false;
}
}
for (int i = 0; i < sN.size(); i++){
adj[sN[i] - 1][eN[i] - 1] = true;
}
for (int i = 0; i < nodeNum; i++){
BFS(i, adj, nodeNum);
}
system("pause");
return 0;
}
在xcode上显示错误讯息
http://i.imgur.com/DQzVxLg.jpg
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
补充说明(Supplement):
--
Sent from my Android
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.83.17.9
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1445486841.A.45F.html
1F:→ wwyes: nodeNum 是 -999捏~ 你讯息上面不是有写吗 10/22 12:11
2F:→ hello881g: 可是为什麽在vs上没有这个问题呢? 10/22 16:16
3F:→ longlongint: 被和谐掉了之类的吧 10/22 19:28
4F:推 yvb: 意思是说vs可以读到档案,xcode不行... 执行的目录不同? 10/22 20:35
5F:推 Killercat: 工作目录不同 你去xcode左边project 看一下执行党 10/23 18:27
6F:→ Killercat: 按右键选show in finder 你就懂了 10/23 18:27