c语言调用函数求矩阵和 用c语言实现矩阵的乘法

c语言编写一个函数sum,实现求4*5的矩阵所有元素和.以下是使用C语言编写的程序,实现求4x5的矩阵所有元素和:
#includestdio.h
int sum(int matrix[4][5]) {
int i, j, total = 0;
for(i = 0; i4; i){
【c语言调用函数求矩阵和 用c语言实现矩阵的乘法】for(j = 0; j5; j){
total= matrix[i][j];
}
}
return total;
}
int main(){
int matrix[4][5] = {
{ 1, 2, 3, 4, 5 },
{ 6, 7, 8, 9, 10 },
{ 11, 12, 13, 14, 15 },
{ 16, 17, 18, 19, 20 }
};
int result = sum(matrix);
printf("The sum of all the elements of the matrix is %d\n", result);
return 0;
}
输出结果:
The sum of all the elements of the matrix is 210
C语言:矩阵求和对调给,已经编译运行确认:
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
#include"conio.h"
void main()
{
int i,j,temp;
int x;
int lineCountNow=0,lineCountMax=0,maxlineNum=0;
int a[5][4]={0};
srand( (unsigned)time( NULL ) );
for(i=0;i5;i)
{
for(j=0;j4;j)
{
x=rand()0; /*产生0到100的随机数*/
a[i][j]=x;
}
}
printf("生成的矩阵为: \n");
for(i=0;i5;i)
{
for(j=0;j4;j)
printf("= ",a[i][j]);
printf("\n");
}
for(i=0;i5;i)
{
for(j=0;j4;j)
lineCountNow =a[i][j];
if(lineCountNowlineCountMax)
{
lineCountMax=lineCountNow;
maxlineNum=i;
}
lineCountNow = 0;
}
for(j=0;j4;j)
{
temp = a[maxlineNum][j];
a[maxlineNum][j]=a[0][j];
a[0][j]=temp;
}
printf("\n第%d行的元素和最大 。\n",maxlineNum);
printf("\n处理后的矩阵为: \n");
for(i=0;i5;i)
{
for(j=0;j4;j)
printf("= ",a[i][j]);
printf("\n");
}
getch();
}
运行示例:
生成的矩阵为:
2670665
70593245
91929481
6986232
55455469
第2行的元素和最大 。
处理后的矩阵为:
91929481
70593245
2670665
6986232
55455469
C语言中求两个矩阵的和C语言中求两个矩阵的和具体如下:
#includestdio.h
#includestdlib.h
#includetime.h
void main()
{
int a[3][3];
int b[3][3];
int i,j,c,x;
printf(" 求两个矩阵之和\n");
printf("请选择输入方式\n");
printf("0为随机自主输入,1为人工输入\n");
scanf("%d",x);
if(x==1)
{
printf("请输入两个3*3矩阵,以回车结束每个数字的输入\n");
for(i=0;i=2;i)
{
for(j=0;j=2;j)
{
printf("a[%d][%d]=",i,j);
scanf("%d",a[i][j]);
}
}
for(i=0;i=2;i)
{
for(j=0;j=2;j)
{
printf("b[%d][%d]=",i,j);
scanf("%d",b[i][j]);
}
}
}
if(x==0)
{
srand((unsigned int)time(NULL));
for(i=0;i=2;i)
{
for(j=0;j=2;j)
{
a[i][j]=rand()0 1;
}
}
for(i=0;i=2;i)
{
for(j=0;j=2;j)
{
printf("a[%d][%d]=",i,j);
printf("%d\n",a[i][j]);
}
}
srand((unsigned int)time(NULL));
for(i=0;i=2;i)
{
for(j=0;j=2;j)
{
b[i][j]=rand()0 1;
}
}
for(i=0;i=2;i)
{
for(j=0;j=2;j)
{
printf("b[%d][%d]=",i,j);
printf("%d\n",b[i][j]);
}
}
}
for(i=0;i=2;i)
{
for(j=0;j=2;j)
{
c=a[i][j] b[i][j];
printf(" %d \n",c);
}
}
}
C语言 求矩阵各行各列的和思路c语言调用函数求矩阵和:求矩阵各行c语言调用函数求矩阵和的和时c语言调用函数求矩阵和,矩阵的行先不变c语言调用函数求矩阵和,利用for循环依次遍历该行的每一列元素累加求和c语言调用函数求矩阵和;求矩阵各列的和时,矩阵的列先不变,利用for循环依次遍历该列的每一行元素累加求和 。
参考代码:
#includestdio.h
int Sr(int a[3][5],int n)//求矩阵n行的累加和
{
int i,j,c=0;
for(j=0;j5;j)
c =a[n][j];
return c;
}
int Sc(int a[3][5],int n)//求矩阵n列的累加和
{
int i ,j,c=0;
for(i=0;i3;i)
c =a[i][n];
return c;
}
int main()
{
int i,j,a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6};
for(i=0;i3;i){
for(j=0;j5;j)
printf("%d ",a[i][j]);
printf("\n");
}
printf("各行的累加和为:\n");
for(i=0;i3;i)
printf("%d ",Sr(a,i));
printf("\n各列的累加和为:\n");
for(i=0;i5;i)
printf("%d ",Sc(a,i));
return 0;
}
/*
输出:
1 3 5 7 9
2 4 6 8 10
3 5 8 7 6
各行的累加和为:
25 30 29
各列的累加和为:
6 12 19 22 25
*/
矩阵求和C语言函数调用的形式#include stdio.h#include string.h#include stdlib.h typedef struct matrix{int **array;int row;int column;} MATRIX, *PMATRIX;void addMatrix( PMATRIX a, PMATRIX b, PMATRIX c ){int i,j, k;if ( a-row != b-row || a-column != b-column ){printf( "矩阵A %d*%d 与矩阵B %d*%d 大小不同,不支持加法运算\n",a-row, a-column, b-row, b-column );c-row = 0;c-column = 0;return;}c-row = a-row;c-column = a-column;c-array = (int**)malloc(c-row*sizeof(int*));if ( c-array == NULL ){printf( "分配内存失败\n" );c-row = 0;c-column = 0;return;}for( i=0; ia-row; i){*(c-array i) = (int*)malloc( c-column*sizeof(int) );if ( *(c-array i) == NULL ){printf( "分配内存失败\n" );c-row = i-1;freeMatrix( c );return;}memset( *(c-array i), 0, c-column*sizeof(int) );for( j=0; ja-column; j)*(*(c-array i) j) = *(*(a-array i) j)*(*(b-array i) j);}}
关于c语言调用函数求矩阵和和用c语言实现矩阵的乘法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读