#include<stdio.h>#define N 100intG[N][N],visited[N],path[N],cycle=-1,n;voidinput(){printf("Pleaseinputmatrixdimension:\n");scanf("%d",&n);printf("Pleaseinputmatrix:\n");//示例/*不存在回路50101100000110100000100000*//*存在回路0->1->4->3->06010011000010010100100000000101001000*/for(inti=0;i<n;i++){for(intj=0;j<n;j++){scanf("%d",&G[i][j]);}}}intDFS(inti,intstart){visited[i]=-1;path[i]=start;for(intj=0;j<n;j++){if(G[i][j]&&j!=start){if(visited[j]<0){cycle=i;return0;}if(!DFS(j,i)){return0;}}}visited[i]=1;return1;}voidDisPath(inti){if(i<0){return;}DisPath(path[i]);printf("%d",i);if(i>=0)printf("->");}intmain(){input();inti;for(i=0;i<n;i++){if(!visited[i]&&!DFS(i,-1)){break;}}if(cycle<0){printf("Cyclenon-existent!\n");}else{printf("Cycleexistent!:\n");DisPath(cycle);printf("%d",i);}printf("\n");system("pause");}