菜鸟请教一道C语言题目中的不明白的一处

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:13:46
15. 已知6个城市,用c[i,j]表示从i城市到城市j是否有单向的直达汽车

(1=<i〈=6,1〈=j〈=6), c[i,j]=1 表示城市i到城市j有单向直达汽
车; 否则 c[i,j]=0. 试编制程序,对于给出的城市代号i,打印出从该城市出
发乘车(包括转车)可以到达的所有城市。

15.解答
地图是自己设置的,采用深度优先搜索

#include <stdio.h>
#define N 6

int C[N+1][N+1] = // 下标为0的元素是不使用的
// 首先,令C[i][i] = 1,即左上到右下对角线上值为1,表示所有城市可到达自己本身
// 假设1可到2,3,4,2可到1,3,6,3可到1,2,4,4可到2,3,6,5可到2,3,4,6可到1,2,3,
// 程序运行时:
// 输入:1或2或3或4或6
// 结果:1,2,3,4,6
// 输入:5
// 结果:1,2,3,4,5,6
{
-1,-1,-1,-1,-1,-1,-1,
-1, 1, 1, 1, 1, 0, 0,
-1, 1, 1, 1, 0, 0, 1,
-1, 1, 1, 1, 1, 0, 0,
-1, 0, 1, 1, 1, 0, 1,
-1, 0, 1, 1, 1, 1, 0,
-1, 1, 1, 1, 0, 0, 1
};

int visited[N+1] = {0}; // 下标为0的元素是不使用的

void visit(int i)
{
int j;
if( visited[i] )
return;
visited[i] = 1;
for(j=1; j<=N; ++j)
if(C[i][j]==1)

void visit(int i)
{
int j;
if( visited[i] )
return;
visited[i] = 1;
for(j=1; j<=N; ++j)
if(C[i][j]==1)
visit(j);
}
这个函数的返回值是void 表示不返回值的意思,
return一般返回0或1,表示转回操作系统跳出程序。
而void函数里着不能返回任何值,所以只能用return;

什么也不返回,表示跳出函数。

return是用来从函数中退出,并不返回实际的值。

同意

ds

这个程序的代码有吗,大佬