第九次上机题 - 参考答案.docVIP

第九次上机题 - 参考答案.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九次上机题 - 参考答案

实验九 综合应用(二) 实验目的: 综合使用数组、函数、指针和结构体,解决一些简单问题。 一、邻接矩阵转化为Laplace矩阵图是研究对象关系(本题考虑的关系是对称的关系)的一个强有力工具。在研究中,一般用结点表示对象,若两对象间有联系,则在两结点间连一条线。利用这种方法,可以把众多问题抽象成图模型,从而利用图论的方法进行解决。 在计算机中存储图,常用的一种方式是邻接矩阵,方法是先对图中所有结点编号:1,2,3,…,n(假设有n个结点),对于矩阵第i行第j列元素,如果结点i与结点j有连线,则置该元素为1,否则置为0。显然,邻接矩阵是n*n的,且该矩阵是对称矩阵。下面是图论中著名的Peterson图及其对应的邻接矩阵。 对于图中的结点,与之相连的边数,称为该结点的度。在图论研究中,Laplace矩阵也是图的一种常用表示,该矩阵可以由图的邻接矩阵得到,方法是先求出图中各结点的度,再按照结点编号顺序得到一个度对角矩阵,利用度对角矩阵减去邻接矩阵,就得到图的Laplace矩阵。下面是Peterson图的Laplace矩阵。 从上面矩阵可以观察出,邻接矩阵为1的元素在Laplace矩阵中变为-1,对角元素是邻接矩阵对应行的行和。 Input 有多组测试数据。输入的第一行是整数T(0T=200),表示测试数据的组数。每组测试数据的第一行,是一个整数R,表示本组测试数据中邻接矩阵是R*R的,随后是一个R*R的邻接矩阵,每个矩阵元素后有一个空格。其中,2=R=20。 Output 对应每组测试数据,输出一个对应的Laplace矩阵,每个矩阵元素后应有一个空格。相邻两个矩阵输出用一个空行隔开。 2 5 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 6 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 3 -1 0 -1 -1 -1 2 0 -1 0 0 0 2 -1 -1 -1 -1 -1 5 -1 -1 0 -1 -1 4 3 -1 0 -1 -1 0 -1 4 0 -1 -1 0 0 0 3 -1 0 -1 -1 -1 -1 6 -1 -1 -1 -1 0 -1 3 0 0 0 -1 -1 0 3 #include stdio.h int main() { int i,j,r,s,T; int a[20][20]; freopen(1.in,r,stdin); freopen(1.out,w,stdout); scanf(%d,T); while(T--) { scanf(%d,r); for(i=0;ir;i++) { s=0; for(j=0;jr;j++) { scanf(%d,a[i][j]); if(a[i][j]==1) { s++; a[i][j]=-1; } } a[i][i]=s; } for(i=0;ir;i++) { for(j=0;jr;j++) { printf(%d ,a[i][j]); } printf(\n); } printf(\n); } return 0; } 二、数制转换任给32位二进制数字序列(整数的补码),把它转化为对应的十进制数和十六进制数。 本题有多组测试数据,第一行是测试数据组数T。下面每一行是32位二进制数字序列。 对应每组输入,输出一行对应的十进制整数和十六进制整数,中间用空格隔开。如果十六进制中数字超过9,用大写字母表示。 2 00000000000000000001010111111011 111111111111111111111111111001115627 15FB -25 FFFFFFE7 #include stdio.h #include string.h int main(void) { char ch[33]; unsigned k,a[32]; int i,j,T; freopen(1.in,r,stdin); freopen(1.out,w,stdout); a[31]=1; for(i=30;i=0;i--)//得到恰好只有一位为1的数 a[i]=a[i+1]1; scanf(%d,T); getchar();//吸收回车符 for(i=0;iT;i++) { k=0; gets(ch);//得到二进制数字序列 for(j=0;j32;j++)

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档