您好,欢迎访问三七文档
C语言课程设计题目矩阵的运算西安科技大学二0一一年十一月一、设计目的1.综合C语言相关知识制作简单的应用程序2.灵活对程序代码进行利用,修改和编写;3.熟练将C语言所学知识和其它知识相结合二、功能描述编写一个矩阵运算程序,能够进行矩阵加、减、乘、转置,求矩阵的最大值,最小值,对角线元素的和等三、流程图定义及预处理m1=0,m2=0,m3=0,m4=0,l=0;i,j,k,d,max,min;a[M][N],b[M][N],c[N][P]a[M][N],b[M][N],c[N][P]输出“输入a矩阵”直到i=M直到j=N,i++j++,输入a矩阵元素输出“a矩阵”直到i=M直到j=N,i++,输出换行j++,输出a矩阵输出“输入b矩阵”直到i=M直到j=N,i++直到i=M直到j=N,i++,输出换行j++,输出b矩阵输出“输入c矩阵”直到i=N直到j=P,i++j++,输入c矩阵元素输出“b矩阵”j++,输入b矩阵元素输出“c矩阵”直到i=N直到j=P,i++,输出换行j++,输出c矩阵输出“输入a,b矩阵之和”直到i=M直到j=N,i++,输出换行j++,输出a矩阵与b矩阵对应元素之和输出“输入a,b矩阵之差”直到i=M直到j=N,i++,输出换行j++,输出a矩阵与b矩阵对应元素之差输出“输入a,c矩阵之积”直到i=N直到j=P,i++j++,输出换行,直到k〉=Mk++,输出a[i][k]*c[k][j];输出“a矩阵的转置”直到j=N直到i=M,j++,输出换行i++,输出a[i][j]输出“a矩阵的最大值”max=a[0][0]直到i=M直到i=M直到j=N,i++maxa[i][j]真假max=a[i][j]j++输出“a矩阵的最小值”min=a[0][0]直到i=M直到j=N,i++maxa[i][j]真假min=a[i][j]j++输出min输出“a矩阵的主对角线元素之和”直到i=Mm1+=a[i][i],i++输出m1输出“a矩阵的次对角线元素之和”直到i=Mm2+=a[i][M-1-i],i++输出m2输出“a矩阵的周边元素之和”直到i=N直到j=N,i++(i==0)||(i==M-1)||(j==0)||(j==N-1)真假m3+=a[i][j];j++输出m3输出“a矩阵的主对角线及其下方元素之和”四、源程序#defineM3#defineN3#defineP2#includestdio.hvoidmain(){inti,j,k,d,m=0,l=0,max,min,a[M][N],b[M][N],c[N][P];printf(输入a矩阵:\n);for(i=0;iM;i++)for(j=0;jN;j++)scanf(%d,&a[i][j]);printf(输入b矩阵:\n);for(i=0;iM;i++)for(j=0;jN;j++)scanf(%d,&b[i][j]);printf(输入c矩阵:\n);for(i=0;iN;i++)直到i=N直到j=N,i++i=j真假m4+=a[i][j]输出m4for(j=0;jP;j++)scanf(%d,&c[i][j]);printf(a矩阵:\n);for(i=0;iM;i++){{for(j=0;jN;j++)printf(%4d,a[i][j]);}printf(\n);}printf(b矩阵:\n);for(i=0;iM;i++){{for(j=0;jN;j++)printf(%4d,b[i][j]);}printf(\n);}printf(c矩阵:\n);for(i=0;iN;i++){{for(j=0;jP;j++)printf(%4d,c[i][j]);}printf(\n);}printf(a,b矩阵之和:\n);for(i=0;iM;i++){{for(j=0;jN;j++)printf(%4d,a[i][j]+b[i][j]);}printf(\n);}printf(a,b矩阵之差:\n);for(i=0;iM;i++){{for(j=0;jN;j++)printf(%4d,a[i][j]+b[i][j]);}printf(\n);}printf(a,c矩阵之积:\n);for(i=0;iM;i++){{for(j=0;jP;j++){for(d=0,k=0;kN;k++)d+=a[i][k]*c[k][j];printf(%4d,d);}}printf(\n);}printf(a矩阵的转置:\n);for(j=0;jN;j++){{for(i=0;iM;i++)printf(%4d,a[i][j]);}printf(\n);}printf(a矩阵的最大值:\n);max=a[0][0];for(i=0;iM;i++)for(j=0;jN;j++)if(maxa[i][j])max=a[i][j];printf(%4d\n,max);printf(a矩阵的最小值:\n);min=a[0][0];for(i=0;iM;i++)for(j=0;jN;j++)if(mina[i][j])min=a[i][j];printf(%4d\n,min);printf(a矩阵的主对角线之和:\n);for(i=0;iM;i++)m+=a[i][i];printf(%d\n,m);}五、运行界面六、心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过了这半学期的C语言课程学习和设计,我学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次课程设计之后,一定把以前所学过的知识重新温故。程序设计师需要大量的时间去动手练习才能体验到她的内涵,同时还需要用心去投入,时间和感情花下去之后,的确慢慢的感受到有所收获了,而确实使我得到了一点点的乐趣。这可能是一个良性循环的开始吧,相信以后会做的更好的。这次课程设计终于顺利完成了,在设计中遇到很多编程问题,但是在老师和同学的帮助下终于解决。在此向老师还有给过我帮助的同学们表示忠心的感谢!
本文标题:C语言矩阵的运算
链接地址:https://www.777doc.com/doc-4352594 .html