C语言程序设计报告 矩阵运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C程序设计报告
矩
阵
运
算
学院:地质与环境学院
专业:资源勘查工程0901
姓名:***
学号:**********
目录1.设计任务书
1.1题目
1.2设计要求
1.3程序涉及的知识点
2.功能设计
2.1算法设计
2.2部分模块流程图
3.程序代码设计
3.1源代码
3.2运行结果
4.运行结果
5.程序设计总结
6.致谢
7.参考文献
1设计任务书
1.1 题目
矩阵运算
1.2 设计要求
此程序为矩阵运算的相关程序,用来计算包括两矩阵的加、减、乘运算,求矩阵的转置矩阵、最大值元素、最小值元素及对角线元素之和等运算。
1.2 本系统涉及的知识点
此程序涉及了老师讲授的多个知识点,包括:for、if、printf及scanf 等语句,顺序、选择、循环等结构。
2功能设计
2.1 算法设计
此程序需要实现的功能要求:
利用for、if、printf及scanf 等语句来实现所需功能。
输入矩阵a和b的元素之后,依次计算:
程序一:计算a+b矩阵;
程序二:计算a-b矩阵;
程序三:计算a*b矩阵;
程序四:计算a的转置矩阵;
程序五:计算a矩阵的最小值元素;
程序六:计算a矩阵的最大值元素;
程序七:计算a矩阵的主对角线元素之和;
程序八:计算a矩阵的副对角线元素之和;
程序九:计算a矩阵的上三角元素之和;
程序九:计算a矩阵的下三角元素之和;
2.2 部分模块流程图
3 程序源代码
3.1源代码
#include"stdio.h"
void main()
{
int a[3][3],b[3][3],c[3][3],
int i,j,k,s,max,min,sum1=0,sum2=0,sum3=0,sum4=0;
printf("矩阵运算\n");
printf("\n");
printf("请输入a矩阵元素:\n");
for(i=0;i<3;i++) /*通过二重循环给a矩阵的元素赋值*/ for(j=0;j<3;j++)
scanf("%4d",&a[i][j]);
printf("a矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
printf("请输入b矩阵元素:\n");
for(i=0;i<3;i++) /*通过二重循环给b矩阵的元素赋值*/ for(j=0;j<3;j++)
scanf("%4d",&b[i][j]);
printf("b矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%6d",b[i][j]);
printf("\n");
}
printf("\n");
printf("程序一:计算a+b矩阵\n"); /*计算a+b矩阵并输出*/ for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{c[i][j]=a[i][j]+b[i][j];
printf("%6d",c[i][j]);}
printf("\n");
}
printf("\n");
printf("程序二:计算a-b矩阵\n"); /*计算a-b矩阵并输出*/ for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{c[i][j]=a[i][j]-b[i][j];
printf("%6d",c[i][j]);}
printf("\n");
}
printf("\n");
printf("程序三:计算a*b矩阵\n"); /*计算a*b矩阵(c矩阵)并输出*/
for(i=0;i<3;i++) /*最外层循环控制c矩阵的行数*/
for(j=0;j<3;j++) /*次外层循环控制c矩阵的列数*/
{for(k=s=0;k<3;k++) /*计算c矩阵的每个元素的值*/
s+=a[i][k]*b[k][j];
c[i][j]=s;}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%6d",c[i][j]);
printf("\n");
}
printf("\n");
printf("程序四:计算a的转置矩阵\n"); /*计算a的转置矩阵并输出*/
for(i=0;i<3;i++)
for(j=0;j<3;j++)
c[j][i]=a[i][j];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%6d",c[i][j]);
printf("\n");
}
printf("\n");
printf("程序五:计算a矩阵的最小值元素\n"); /*计算a矩阵的最小值元素min并输出*/
min=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(a[i][j] min=a[i][j]; printf("min=%d\n",min); printf("\n"); printf("程序六:计算a矩阵的最大值元素\n"); /*计算a矩阵的最大