矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

更新时间:2023-06-06 10:47:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

院 系: 计算机学院 专 业: 软件工程 年 级: 2010 课程名称: 程序设计语言 学 号1005010104 姓 名:

2011年 11月11 日

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

实 验 名 称

写出矩阵运算的编程(包括矩阵的加法、减法、乘法、 实验 除法、对角线元素之和、下三角元素之和等) 类型

设 计 型 √

综 合 型

1.掌握 C 函数的定义方法,函数的调用方法,参数说明以及返回值。

2.掌握函数的嵌套调用及递归调用的设计方法。 实 验 目 的 或 要 求

3.在编程过程中加深理解函数调用的设计思想.

4.理解并掌握一维数组、二维数组的定义及引用。

5.熟练掌握数组的查找及排序的编程方法。

6.掌握字符串数组和字符串的使用方法及常用字符串函数在程序中的使用。

实 验 环 境

visualC++6

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

开始 i=0否

开始

i=0 否 i<M

i<=M-1 是 j=0 否 j<=N-1 是l<H 是 l=0

输入数据

是 j=0 否 j<N

j++

算 法 流 程 图

i++

是 Sum+=a[i][j]*b[j][l]

结束输出 sum

l++

换行

l++

结束

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

矩阵加法矩阵是 3*4 的 #include<stdio.h> void main() { int a[3][4],b[3][4],c[3][4],i,j; printf("please input a array:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) { scanf("%d",&a[i][j]); } } printf("please input b array:\n"); for(i=0;i<3;i++) { scanf("%d",&b[i][j]); } } printf("result is array c:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) { c[i][j]=a[i][j]+b[i][j]; printf("%d,",c[i][j]); } } printf("\n"); printf("press anykey exit:"); getchar(); }

矩 阵 加 法 程 序

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

矩 阵 乘 法 程 序

*/ #include"stdio.h" /*下面定义的为 line 列 row 为行 #define line 4 #define row 4 /*矩阵乘法*/ main() { int i=0,j=0,k=0,n=0,m=0;/*k 为待输入值*/ int s=0;/*此处作为输出变量*/ int middle=0; /*中间值*/ int a[row][line],b[line][row]; long c[row][row]; for(i=0;i<row;i++) { for(j=0;j<line;j++) { scanf("%d",&k); a[i][j]=k; printf("\ta[%d][%d]=%d\n",i,j,a[i][j]); } } printf("\n"); for(i=0;i<line;i++) { for(j=0;j<row;j++) { scanf("%d",&k); b[i][j]=k; printf("\tb[%d][%d]=%d\n",i,j,b[i][j]); } } printf("\n"); /*此时,用来做乘法的 a[][],b[][]矩阵输入完毕*/ /*开始矩阵乘法*/ for(i=0;i<row;i++) for(j=0;j<row;j++) { for(s=0;s<line;s++) { n=a[i][s]; printf("%d\n",n); m=b[s][j]; printf("%d\n",m); middle+=n*m; } printf("\t%d\n",middle);

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

getch(); c[i][j]=middle; printf("c[%d][%d]=%ld\n",i,j,c[i][j]);/*矩阵输出*/ getch(); middle=0; } getch(); / #include <stdio.h> #define N 3 int main() { int arr[N][N]={1,2,3,4,5,6,7,8,9},i,j,a[N][N]; /* for(i=0;i <N;i++) for(j=0;j <N;j++) scanf( "%d ",&arr[i][j]); */ for(i=0;i <N;i++){ for(j=0;j <N;j++) printf( "%d\t ",arr[i][j]); printf( "\n "); } printf( "\n\n "); for(i=0;i <N;i++) for(j=0;j <N;j++) a[i][j]=arr[j][i]; for(i=0;i <N;i++){ for(j=0;j <N;j++) printf( "%d\t ",a[i][j]); printf( "\n "); } system( "pause "); return 0; }

矩 阵 的 转 置 程 序

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

#include <stdio.h> int main() { int array[3][3],

sum int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%d", &array[i][j]); } } sum = array[0][0] + array[0][2] + array[1][1] + array[2][0] + array[2][2]; printf("%d\n", sum); return 0; } 3×4 二维数组,输出该数组的下三角元素之和 void main() { int a[3][4],i,j,s=0; printf("请输入数组元素:\n"); for(i=0;i<3;i++) { printf("输入第%d 行元素\n",i+1); scanf("%d",&a[i][j]); if (i>=j) s+=a[i][j]; } }

矩 阵 对 角 线 元 素 之 和

矩阵的加法、乘法、减法、转置,求对角线元素之和等C语言程序设计

矩 阵 最 大 元 素

printf("下三角元素之和=%d\n",s); } #include<stdio.h> void main() {int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i,j,c,d,max; max=a[0][0]; for(i=0;i<3;i++) {for(j=0;j<4;j++) if(max<=a[i][j]) {max=a[i][j]; c=i; d=j; } } printf("%d 最大数\n%d 行号\n%d 列号",max,c,d); }

运行 结果 遇 到 的 问 题 解 决 措 施 1. 2. 3. 4. 被调函数定义在调用之后类型不匹配 所调用的函数在调用语句之后才定义,而又在调用前未加说明。 混淆结构体类型与结构体变量的区别,对一个结构体类型赋值。 误认为形参值的改变会影响实参的值

1 调换位置或原型说明 2 在原函数中在增加一个对调运函数的说明 3. 对变量赋值而不对类型赋值 4. 运用指针变量

总结

经过两个月的 C 语言课程设计,感觉自己收获不少! 首先是:要达到这样的功能,使用链表相当方便,但不容易理解,所以在这 方面我很了很多的时间看课本,使 C 语言的知识强化了不少。 其次,在做课程设计的过程中,发现了平时很多没有注意到的问题, 更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见 识到了 C 语言的重要性。 !从这里我也得到一个体会,做一个程序,或者开 发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程 序或者软件。相信这次的课程设计使我的 C 语言知识扎实了很多。 由于这是第一次进行设计,写文档,难免会写得不好!

本文来源:https://www.bwwdw.com/article/ww11.html

Top