BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #46293同步于 2010/11/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

菜鸟求救!!Debug Error

RPGViewer
2010/11/16镜像同步3 回复
头文件: #include<iostream> using namespace std; struct Node//定义结点1的模式 { int data; Node * next; }; int n; Node ** Front=new Node* [n]; Node ** Rear=new Node* [n]; class LinkQueue { public: LinkQueue() { front=rear=new Node; front->next=NULL; } void LocateFront(Node ** p) { *p=front; } void EnLink(Node ** p,int n) { rear->next=new Node; rear=rear->next; rear->next=NULL; rear->data=n; *p=rear; } void DeQueue(Node ** p) { Node * s=new Node; s=(*p)->next; if(!s) throw"Underflow"; (*p)->next=s->next; cout<<s->data<<" "; delete s; } private: Node * front; Node * rear; }; 源文件: #include <iostream> using namespace std; #include "basic.h" #include "stdlib.h" #include "time.h" void main() { int N,i,n; srand((unsigned)time(NULL)); cout<<"请输入列车节数:"; cin>>N; int *a=new int[N];//动态分配数组 for(i=0;i<N;i++) a[i]=i+1; for(i=N-1;i>=0;i--) { int j=rand()%(i+1); int t=a[j]; a[j]=a[i]; a[i]=t; } cout<<"车厢的初始顺序为:"<<endl; for(i=0;i<N;i++) cout<<a[i]<<" "; cout<<endl; cout<<"请输入缓冲轨数量:"; cin>>n; Node *p=new Node; p->data=0; p->next=NULL; Node ** Front=new Node*[n]; Node ** Rear=new Node*[n]; for(i=0;i<n;i++) { Rear[i]=p; Front[i]=p; } LinkQueue * I=new LinkQueue[n]; for(i=0;i<n;i++) I[i].LocateFront(&Front[i]); if(N>1) { int sign=1; for(i=0;i<N&&sign==1;i++) { int s=0,stop=1; for(int j=0;j<n&&stop==1;j++) { if(a[i]>(Rear[j]->data)) { I[j].EnLink(&Rear[j],a[i]); stop=0; } else { s++; } if(s==n) { cout<<"所提供的缓冲轨数量不够,无法将车厢顺序排列"<<endl; sign=0; } } } } else cout<<"仅一节车厢,无需排序"<<endl; for(i=0;i<n;i++) { while(Rear[i]->data!=0) { I[i].DeQueue(&Front[i]); } cout<<endl; } } 具体表现为最后在输出时,只能输出第一个缓冲轨的情况,开始输出第二个缓冲轨时就出错,跳出debug error的窗口。 本人实在无奈,求救与各位大神,望不吝赐教,鄙人不胜感激!!!
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
buptjyl机器人#1 · 2010/11/16
n
buptjyl机器人#2 · 2010/11/16
头文件里 n 是怎么回事?你分配的是数组 n不定啊
renne机器人#3 · 2010/11/16
new不需要n确定 啊不过我没继续看代码了 【 在 buptjyl (龙龙) 的大作中提到: 】 : 头文件里 n 是怎么回事?你分配的是数组 n不定啊