主题:邻接矩阵
各位高手这各程序总是有一个错误,帮忙搞一下!
#include<stdio.h> /*建立任一个图的邻接矩阵*/
#define INT_MAX 32767
typedef int vextype;
typedef int arctype;
typedef struct
{ vextype vex[50];
arctype arc[50][50];
}MGraph;
void CreateMGraph(MGraph *ga)
{ int i,j,n,m,k,w;
char ch;
int r[50][50];
scanf("%d %d",&n,&m);
ga->vex[50]=n;
ga->arc[50][50]=m;
for(i=0;i<ga->vex[50];i++)
{ scanf("%c",&ch);
ga->vex[i]=ch; }
for(i=0;i<ga->vex[50];i++)
for(j=0;j<ga->vex[50];j++)
ga->arc[i][j]=INT_MAX;
for(k=0;k<ga->arc[50][50];k++)
{ scanf("%d %d %d",&i,&j,&w);
ga->arc[i][j]=w;
ga->arc[j][i]=w;
}
for(i=1;i<=n;i++) /*输出邻接矩阵*/
{ for(j=1;j<=n;j++)
printf("%3d",r[i][j]);
printf("\n");
}
main()
{ char s,a;
clrscr();
while (1) /**选择下一步操作**/
{ printf("\n ********** a. 建设有向图 **********" );/*建立有向图 */
printf("\n ********** b. 建立无向图 **********");/*建立无向图 */
printf("\n ********** c. 建立有向网络 **********");/*建立有向网络*/
printf("\n ********** d. 建立无向网络 **********");/*建立无向网络*/
printf("\n ********** c. 退出 **********");/*退出*/
printf("\n\n 请选择:"); /*输入你想要建立的图的类型*/
scanf("%c",&s);
if (s=='e')
{ printf ("是否真要退出?(y/n)");
if (toupper(getch())=='y')
{ a=getchar();return; }
else scanf("%c",&s);
}
else CreateMGraph(s);
}
}
}
#include<stdio.h> /*建立任一个图的邻接矩阵*/
#define INT_MAX 32767
typedef int vextype;
typedef int arctype;
typedef struct
{ vextype vex[50];
arctype arc[50][50];
}MGraph;
void CreateMGraph(MGraph *ga)
{ int i,j,n,m,k,w;
char ch;
int r[50][50];
scanf("%d %d",&n,&m);
ga->vex[50]=n;
ga->arc[50][50]=m;
for(i=0;i<ga->vex[50];i++)
{ scanf("%c",&ch);
ga->vex[i]=ch; }
for(i=0;i<ga->vex[50];i++)
for(j=0;j<ga->vex[50];j++)
ga->arc[i][j]=INT_MAX;
for(k=0;k<ga->arc[50][50];k++)
{ scanf("%d %d %d",&i,&j,&w);
ga->arc[i][j]=w;
ga->arc[j][i]=w;
}
for(i=1;i<=n;i++) /*输出邻接矩阵*/
{ for(j=1;j<=n;j++)
printf("%3d",r[i][j]);
printf("\n");
}
main()
{ char s,a;
clrscr();
while (1) /**选择下一步操作**/
{ printf("\n ********** a. 建设有向图 **********" );/*建立有向图 */
printf("\n ********** b. 建立无向图 **********");/*建立无向图 */
printf("\n ********** c. 建立有向网络 **********");/*建立有向网络*/
printf("\n ********** d. 建立无向网络 **********");/*建立无向网络*/
printf("\n ********** c. 退出 **********");/*退出*/
printf("\n\n 请选择:"); /*输入你想要建立的图的类型*/
scanf("%c",&s);
if (s=='e')
{ printf ("是否真要退出?(y/n)");
if (toupper(getch())=='y')
{ a=getchar();return; }
else scanf("%c",&s);
}
else CreateMGraph(s);
}
}
}