| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 846 人关注过本帖
标题:输出邻接矩阵的算法调试问题!
取消只看楼主 加入收藏
bcstudy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-6-20
收藏
 问题点数:0 回复次数:0 
输出邻接矩阵的算法调试问题!
#include<stdio.h>
graph(char s)
{ int i,j,n,w,m,k;
int r[100][100];
printf("\n\n请输入图的顶点数:"); /*你的图有多少个顶点*/
scanf("%d",&n);
printf("请输入图的边数:"); /*你的图有多少条边*/
scanf("%d",&m);
for(i=1;i<=n;i++) /*此循环语句为数组赋初值*/
for(j=1;j<=n;j++)
r[i][j]=0;
for(k=1;k<=m;k++)
{ switch(s)
{case'a': printf("\n\n请输入边的两个顶点(以空格分隔)");
scanf("%d%d",&i,&j);
r[i][j]=1;
break;
case'b': printf("\n\n请输入边的两个顶点和对应权值(以空格分隔)");
scanf("%d%d%d",&i,&j,&w);
r[i][j]=w;
r[j][i]=w;
break;

/*case'c': 。。。
case'd': 。。。 */
default: printf("error\n");k=m;
}
}
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 ********** e. 退出 **********"); /*退出*/
printf("\n\n 请选择: ");/*输入你想要建立的图的类型*/
scanf("%c",&s);
if (s=='e')
{printf("是否真要退出?(y/n)");
if (toupper(getch())=='Y')
{a=getchar();return;}
else scanf("%c",&s);
}
else graph(s);
}
}
#include<stdio.h>
graph(char s)
{ int i,j,n,w,m,k;
int r[100][100];
printf("\n\n请输入图的顶点数:"); /*你的图有多少个顶点*/
scanf("%d",&n);
printf("请输入图的边数:"); /*你的图有多少条边*/
scanf("%d",&m);
for(i=1;i<=n;i++) /*此循环语句为数组赋初值*/
for(j=1;j<=n;j++)
r[i][j]=0;
for(k=1;k<=m;k++)
{ switch(s)
{case'a': printf("\n\n请输入边的两个顶点(以空格分隔)");
scanf("%d%d",&i,&j);
r[i][j]=1;
break;
case'b': printf("\n\n请输入边的两个顶点和对应权值(以空格分隔)");
scanf("%d%d%d",&i,&j,&w);
r[i][j]=w;
r[j][i]=w;
break;

/*case'c': 。。。
case'd': 。。。 */
default: printf("error\n");k=m;
}
}
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 ********** e. 退出 **********"); /*退出*/
printf("\n\n 请选择: ");/*输入你想要建立的图的类型*/
scanf("%c",&s);
if (s=='e')
{printf("是否真要退出?(y/n)");
if (toupper(getch())=='Y')
{a=getchar();return;}
else scanf("%c",&s);
}
else graph(s);
}
}

调用graph后,返回输出供选择信息,这个没错,但是紧跟着的scanf语句怎么没执行,直接转到graph中的Printf语句:请输入图的顶点数(用的是wintc调试)


[此贴子已经被作者于2007-6-21 0:09:33编辑过]

搜索更多相关主题的帖子: 邻接矩阵 算法 调试 输出 
2007-06-21 00:07
快速回复:输出邻接矩阵的算法调试问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045567 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved