本文目錄一覽:
- 1、求通過C語言實現矩陣的加、減及乘法。要自己寫的,不要複製過來
- 2、用c語言編寫矩陣的加減乘除運算
- 3、C語言實現的矩陣加減乘法
- 4、!!!跪求C語言實現矩陣運算(加,減,乘、求逆、轉置)
- 5、用c語言計算矩陣加法和乘法
求通過C語言實現矩陣的加、減及乘法。要自己寫的,不要複製過來
#include iostream
using namespace std;
int main()
{
int am=3,bm=3,an=3,bn=3;
int a[am][an];
int b[bm][bn];
for(int i=0;iam;i++)
{
for(int j=0;jan;j++)
{
a[i][j]=i*am+j;
}
}
for(int i=0;ibm;i++)
{
for(int j=0;jbn;j++)
{
b[i][j]=i*bm+j;
}
}
//original matrix
cout”原始矩陣a”endl;
for(int i=0;iam;i++)
{
for(int j=0;jan;j++)
{
couta[i][j]” “;
if(j==an-1)
coutendl;
}
}
cout”原始矩陣b”endl;
for(int i=0;ibm;i++)
{
for(int j=0;jbn;j++)
{
coutb[i][j]” “;
if(j==bn-1)
coutendl;
}
}
//matrix add
cout”矩陣加法”endl;
if(am!=bm || an!=bn)
{
cout”Sorry, can not be added!”endl;
}
else for(int i=0;iam;i++)
{
for(int j=0;jan;j++)
{
couta[i][j]+b[i][j]” “;
if(j==an-1)
coutendl;
}
}
//matrix minus
cout”矩陣減法”endl;
if(am!=bm || an!=bn)
{
cout”Sorry, can not be minused!”endl;
}
else for(int i=0;iam;i++)
{
for(int j=0;jan;j++)
{
couta[i][j]-b[i][j]” “;
if(j==an-1)
coutendl;
}
}
//matrix multiply
cout”矩陣乘法”endl;
int temp;
if(an!=bm)
{
cout”Sorry, can not be multiplied!”endl;
}
else for(int i=0;iam;i++)
{
for(int j=0;jbn;j++)
{
temp=0;
for(int k=0;kan;k++)
{
temp+=a[i][k]*b[j][k];
}
couttemp” “;
if(j==bn-1)
coutendl;
}
}
}
用c語言編寫矩陣的加減乘除運算
#include iostream
#include iomanip
using namespace std;
template typename T1,typename T2
void inverse(T1*mat1,T2 *mat2,int a,int b);
template typename T1,typename T2
void multi(T1*mat1,T2*mat2,T2*result,int a,int b,int c);
template typename T
void output(T*mat,char *s,int a,int b);
int main(){
int middle[6][3],result[6][4];
int matrix1[3][6]={8,10,12,23,1,3,5,7,9,2,4,6,34,45,56,2,4,6};
int matrix2[3][4]={3,2,1,0,-1,-2,9,8,7,6,5,4};
char*s1=”result”;
char*s2=”middle”;
//inverse(matrix1,middle,6,3);
inverseint[6],int[3](matrix1,middle,6,3);
//multi(middle,matrix2,result,6,3,4);
multiint[3],int[4](middle,matrix2,result,6,3,4);
output(matrix1,”matrix1″,3,6);
output(middle,s2,6,3);
output(matrix2,”matrix2″,3,4);
output(result,s1,6,4);
return 0;
}
template typename T1,typename T2
void inverse(T1*mat1,T2*mat2,int a,int b){
int i,j;
for(i=0;ib;i++)
for(j=0;ja;j++)
mat2[j][i]=mat1[i][j];
return;
}
template typename T1,typename T2
void multi(T1*mat1,T2*mat2,T2*result,int a,int b,int c){
int i,j,k;
for(i=0;ia;i++){
for(j=0;jc;j++){
result[i][j]=0;
for(k=0;kb;k++)
result[i][j]+=mat1[i][k]*mat2[k][j];
}
}
return;
}
templatetypename T
void output(T*mat,char*s,int a,int b){
int i,j;
coutsendl;
for(i=0;ia;i++){
for(j=0;jb;j++)
coutsetw(6)mat[i][j];
coutendl;
}
return;
}
C語言實現的矩陣加減乘法
#includestdio.h
/*
m1和m2為兩個相加的數組首元素地址,r和c為兩個數組的行數和列數
m用於存放結果。
調用該函數時,要求m為有足夠存儲單元、能容納運算結果的數組首元素地址
*/
void add(int *m,int *m1,int *m2,int r,int c);
void sub(int *m,int *m1,int *m2,int r,int c);
void mult(int *m,int *m1,int *m2,int r,int p,int c);
void disp(int *m,int r,int c);
void main()
{
int a[3][4]={{2,4,6,8},{1,3,5,7},{11,33,44,22}};
int b[3][4]={{2,-4,6,-8},{-1,3,-5,7},{11,-33,-44,22}};
int c[4][3]={{2,4,6},{1,3,5},{1,0,3},{0,2,4}};
int d[3][4]={0};
int e[3][3]={0};
printf(“\nA(3×4):\n”);
disp(a[0],3,4);
printf(“\nB(3×4):\n”);
disp(b[0],3,4);
add(d[0],a[0],b[0],3,4);
printf(“\nD(3×4)=A+B:\n”);
disp(d[0],3,4);
sub(d[0],a[0],b[0],3,4);
printf(“\nD(3×4)=A-B:\n”);
disp(d[0],3,4);
printf(“\nA(3×4):\n”);
disp(a[0],3,4);
printf(“\nC(4×3):\n”);
disp(c[0],4,3);
mult(e[0],a[0],c[0],3,4,3);
printf(“\nE(3×3)=A*C:\n”);
disp(e[0],3,3);
}
void add(int *m,int *m1,int *m2,int r,int c){
int i,j;
for(i=0; ir; i++)
for(j=0; jc; j++)
*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j);
}
void sub(int *m,int *m1,int *m2,int r,int c){
int i,j;
for(i=0; ir; i++)
for(j=0; jc; j++)
*(m+i*c+j) = *(m1+i*c+j) – *(m2+i*c+j);
}
void mult(int *m,int *m1,int *m2,int r,int p,int c){
int i,j,k,t;
for(i=0; ir; i++)
for(j=0; jc; j++)
{
t=0;
for(k=0; kp; k++)
t += *(m1+i*p+k) * *(m2+k*c+j);
*(m+i*c+j)=t;
}
}
void disp(int *m,int r,int c)
{
int i,j;
for(i=0; ir; i++)
{
for(j=0; jc; j++)
printf(“%6d”,*(m+i*c+j));
printf(“\n”);
}
}
!!!跪求C語言實現矩陣運算(加,減,乘、求逆、轉置)
1、首先打開vs2015(其他版本也可以),新建一個Windows Form窗體程序或者控制台都可以。
2、 定義一個名為array1的數組並賦值:double[,] array1 = new double[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };下面求該矩陣轉置矩陣。
3、接下來實現矩陣的轉置運算,可以寫函數也可以寫類,右鍵解決方案下的項目名,添加-類。
4、創建一個名為「turnzhi」的類(名字隨便取,最好用英文,有時候中文名程序會報錯),然後點擊「添加」。
5、轉置類的代碼如下圖所示。
6、在主程序調用轉置類,用兩個for循壞將轉置後的數組(array)輸出來;並將結果顯示在textbox中。
7、最後運行程序查看編寫的結果:147、258、369。轉置後的結果正確,這樣就實現了c#矩陣的轉置運算。
用c語言計算矩陣加法和乘法
指向結構變數的指針
#include “stdio.h”
#include “math.h”
int main(void)
{
double n;
scanf(“%lf”, n);
printf(“%lf”, pow(n, 2));
return 0;
}
直接用pow函數!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/300838.html