检查下列代码使其能正常输出 #include<bits/stdc++.h> using namespace std; char s[13][20]={'\0'}; struct ArcNode { int adjest; ArcNode *next; }; typedef struct { int vertex; int count; ArcNode firstedge; } VNode; class AdjGraph { private: int VertexNum; int ArcNum; public: VNode adjlist[100]; AdjGraph(int a[],int n,int e); ~AdjGraph(); }; AdjGraph::AdjGraph(int a[],int n,int e) { int i,j,k; VertexNum=n; ArcNum=e; for(i=1;i<=VertexNum;i++) { adjlist[i].vertex=a[i]; adjlist[i].firstedge=NULL; } int q; for(k=0;k<ArcNum;k++) { char s2[20]={'\0'}; char s3[20]={'\0'}; char s0[20]={'\0'}; cin>>s2; cin>>s3; for(q=1;q<=n;q++) { strcpy(s0,s[q]);/**/ if(strcmp(s0,s2)==0) i=q; if(strcmp(s0,s3)==0) j=q; } ArcNode s=new ArcNode; s->adjest=j; s->next=adjlist[i].firstedge; adjlist[i].firstedge=s; } delete [] s; } AdjGraph::~AdjGraph() { } void TopSort(AdjGraph G,int n) { int i,j,l=0; int v; int b[100]={0}; int St[100],top=-1; ArcNode p; for (i=1;i<=n;i++) G->adjlist[i].count=0; for (i=1;i<=n;i++) { p=G->adjlist[i].firstedge; while (p!=NULL) { G->adjlist[p->adjest].count++; p=p->next; } } for (i=n;i>0;i--) if (G->adjlist[i].count==0) { top++; St[top]=i; } while (top>-1) { i=St[top];top--; b[l]=i; l++; p=G->adjlist[i].firstedge; while (p!=NULL) { j=p->adjest; G->adjlist[j].count--; if (G->adjlist[j].count==0) { v=St[top]; if(v>=j) {top++; St[top]=j;} else { St[top]=j; top++; St[top]=v; } } p=p->next; //找下一个邻接点 } } if(l!=n) { cout<<"False"; } else { for(i=0;i<l;i++) { cout<<s[b[i]]; if(i!=n-1) cout<<endl; } } } int main() { int n,e,i; ArcNode p; cin>>n>>e; char s1[20]={'\0'}; for(i=1;i<=n;i++) { cin>>s1; strcpy(s[i],s1); } int a[100]={0}; for(i=1;i<=n;i++) { a[i]=i; } AdjGraph A(a,n,e); / for(i=1;i<=n;i++) { cout<<A.adjlist[i].vertex<<"--->"; p=A.adjlist[i].firstedge; while(p!=NULL) { cout<<p->adjest<<"--->"; p=p->next; } cout<<endl; } */ AdjGraph *G=&A; TopSort(G,n); return 0; }
时间: 2024-04-27 15:21:14 浏览: 15
这段代码存在一些问题,需要修改才能正常输出。具体问题如下:
1. `#include<bits/stdc++.h>`这行头文件不规范,应该使用`#include<iostream>`代替。
2. `ArcNode s=new ArcNode;`这行代码存在内存泄漏,应该使用`ArcNode* s=new ArcNode;`代替,并在合适的位置使用`delete`释放内存。
3. `void TopSort(AdjGraph G,int n)`这个函数的形参类型不正确,应该改为`void TopSort(AdjGraph* G,int n)`,即传入一个指向`AdjGraph`对象的指针。
4. `cout<<s[b[i]];`这行代码中`s`数组未定义,应该改为`cout<<G->adjlist[b[i]].vertex;`,即输出对应节点的值。
修改后的代码如下:
相关问题
请帮我修改这段代码使其可以工作 #include <bits/stdc++.h> using namespace std; int main() { char m; int n; cin >> n; for(int i = 0; i < n; i++) cin >> m[i]; for(int i = 0; i < n; i++) cout << m[i] << " "; return 0; }
当您想将字符存储到字符数组中时,需要使用字符数组而不是字符变量。以下是修改后的代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入字符个数N:";
cin >> n;
char* m = new char[n];
cout << "请输入" << n << "个字符:" << endl;
for (int i = 0; i < n; i++) {
cin >> m[i];
}
cout << "输出" << n << "个字符:" << endl;
for (int i = 0; i < n; i++) {
cout << m[i] << " ";
}
delete[] m; // 释放内存
return 0;
}
```
在此修改后的代码中,我们使用了字符指针 `char* m` 来动态分配字符数组的内存空间,并且使用 `new` 操作符进行分配。在输出字符时,我们也进行了必要的修改。
希望这次修改的代码能够满足您的需求!如果还有其他问题,请随时提问。
#include<bits/stdc++.h> //cout<<"\033c"; clean _sleep(); wait #include<unistd.h> using namespace std; void draw(int n,char f) { for(int i=0;i<n;i++) cout<<f; } int main() { draw(n, f); return 0; } 哪里错了
这段代码有几个问题:
1. `n` 和 `f` 在 `draw` 函数中没有定义,需要在调用 `draw` 函数之前先定义。
2. `cout<<"\033c";` 这一行代码可能会有跨平台兼容性问题,因为不是所有操作系统都支持这种方式清屏。可以使用 `system("clear");` 或 `system("cls");` 来代替。
3. `_sleep();` 这个函数应该是 Windows 系统下的函数,如果要在 Linux 系统下实现类似的功能,可以使用 `sleep()` 函数。
下面是修正后的代码:
```
#include<bits/stdc++.h>
#include<unistd.h>
using namespace std;
void draw(int n, char f) {
for(int i=0;i<n;i++)
cout<<f;
}
int main() {
int n = 10;
char f = '*';
system("clear");
draw(n, f);
sleep(1);
return 0;
}
```
这段代码的功能是在终端中输出 10 个 `*`,并在输出后延迟 1 秒钟,然后清屏。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)