C++图问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:28:14
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10000
#define ALLIN 100

typedef struct
{
char name[ALLIN];
int all;
int recorder[ALLIN][ALLIN];
}matrix;

int main()
{
int num,i,j,i1,j1,k;
scanf("%d",&num);
matrix data;
data.all=num;
for(i=0;i<num;i++)
for(j=0;j<num;j++)
data.recorder[i][j]=MAXSIZE;
for(i=0;i<num;i++)
scanf("%c\n",&data.name[i]);
while(1)
{
scanf("%d%d%d",&i1,&j1,&k);
if(i1==-1|| j1==-1 ||k==-1)
break;
data.recorder[i1][j1]=k;
}
return 0;
}
建立图。。用邻接矩阵..
此程序出现死循环,问原因。。谢谢!
回snakejm 上面有一个num记录图的顶点个数 后面的for()是记录顶点名称 再后面while(1)部分是建立顶点之间的边.这是个有向带权图.i1是出发顶点,j1是到达顶点 k是权。当收到i=-1 或j=-1 或k=-1时就会自动退出循环,否则不退出,继续连接边
<

scanf("%c\n",&data.name[i]);
把 \n去掉

while(1)
{
仔细看这条语句不出先死循环
你就无敌了.

100×100个数莫非你想全用手动设置???
你说说这个程序的目的看我能不能帮你解决。