#include
#include
#define biggest 0
typedef struct
{
char vex[10];
int arc[20][20];
int numver,numarc;
}graph;
int locate(graph &g,char x)
{
int i;
for(i=0;i {
if(g.vex[i]==x)
break;
}
if(i>=g.numver)
{
return -1;
}
return i;
}
void creatgraph(graph &g)
{
int i,j,k,w;char c,p,q;
printf("输入节点数和边数:");
scanf("%d %d", &(g.numver),&(g.numarc));
getchar();
printf("输入顶点:\n");
for(i=0;i<g.numver;i++)
{
scanf("%c",&c);
g.vex[i]=c;
while(g.vex[i]=='\n')
{
g.vex[i]=c;
}
}
getchar();
for(i=0;i<g.numver;i++)
{
printf("%3c",g.vex[i]);
}
printf("\n");
for(j=0;j<g.numver;j++)
{
for(i=0;i<g.numver;i++)
{
g.arc[j][i]=biggest;
g.arc[i][j]=g.arc[j][i];
}
}
printf("输入各边的两端点和权值:");
for(k=0;k<g.numarc;k++)
{
scanf("%c %c %d",&p,&q,&w);
getchar();
int x,y;
x=-1,y=-1;
x=locate(g,p);
y=locate(g,q);
if(x==-1 || y==-1)
{
printf("不存在此顶点\n");
return;
}
g.arc[x][y]=w;
g.arc[y][x]=g.arc[x][y];
}
}
void print(graph &g)
{
int i,j;
printf("邻接矩阵为:\n");
for(i=0;i<g.numver;i++)
{
for(j=0;j<g.numver;j++)
{
printf("%5d",g.arc[i][j]);
if(j==g.numver-1)
{
printf("\n");
}
}
}
printf("\n");
}
int main()
{
graph g;
creatgraph(g);
print(g);
}
1.是不是已经运行了 一个exe 所以这个打不开 看看任务管理器里面有没有 有的话关掉
2.路径问题? 换一个不带中文的路径
3.关闭杀毒软件
4.换一个编译器吧 dev好老的 vc 6.0 或者vs 现在codeblocks 很火 也不大
是这样的,编译器提示你:无法打开并编译你的exe文件。
根据你的实际情况,解决办法如下:
打开任务管理器,转到进程界面
找到你的“直方图.exe”进程(一般在最底端),并按下“结束进程”
下次遇到这种情况还可以直接按下 Windows徽标键+R ,输入tskill [你程序的名字(不带括号和“.exe”)],就能解决了!