本文目錄一覽:
- 1、c語言矩陣轉置 運用二維數組和指針
- 2、c語言如何用指針寫一個5*5的矩陣
- 3、C語言中怎麼用指針實現兩矩陣的相加
- 4、c語言編寫函數,用指針實現矩陣相加,並且將結果矩陣的指針作為函數返回值
- 5、怎麼C語言中怎麼用指針的方法將4*4的矩陣轉置
c語言矩陣轉置 運用二維數組和指針
形參int (*a)[N]和int a[][N]在編譯時都被解釋為「a是指向長度為N的一維數組的指針」,所以函數體內的操作可以二者完全一樣。就是說如果你這個函數是正確的的話,把第一個形參改為int (*a)[N],其餘不變就是完全正確的。所以這沒有什麼新的意義,這裡就不費筆墨了。至於改為形參int *a,那得稍費周折,因為int *a是個一級指針,不能接受二維數組的全部信息,要在函數中作點預處理;調用的地方也要做點處理。舉例如下:
#include “stdio.h”
#define N 10
void Transpose(int *a,int n){
int i,j,b[N][N],*p[N];
for(j=i=0;iN;p[i++]=a+j,j+=n);//處理一下指針,以便操作方陣
for(i=0;in;i++){
for(j=0;jn;j++){
scanf(“%d”,p[i][j]);//輸入矩陣a
b[j][i]=p[i][j];//轉置為b
}
}
printf(“\n轉置後的矩陣為:\n”);
for(i=0;in;i++){
for(j=0;jn;j++)
printf(“%d “,p[i][j]=b[i][j]);//改寫a為轉置後的矩陣
printf(“\n”);
}
}
int main(void){
int a[N][N],n;
printf(“輸入轉置矩陣的n=”);
scanf(“%d”,n);
printf(“請輸入一個%dx%d的矩陣\n” ,n,n);
Transpose((int *)a,n);//這裡對指針a要強製為與函數形參類型一致
return 0;
}
c語言如何用指針寫一個5*5的矩陣
//要定義一個二級指針,動態申請內存
#include stdio.h
#include stdlib.h
#define ROW 5
#define COL 5
int main(void)
{
int i, j;
int **arr = NULL;
arr = (int **) malloc (sizeof(int *));
for (i=0; iROW; i++)
{
arr[i] = (int *) malloc (COL * sizeof(int));
}
printf(“請輸入5X5矩陣:\n”);
for (i=0; iROW; i++)
{
for (j=0; jCOL; j++)
{
scanf(“%d”, arr[i][j]);
}
}
for (i=0; iROW; i++)
{
for (j=0; jCOL; j++)
{
printf(“%5d”, arr[i][j]);
}
printf(“\n”);
}
}
C語言中怎麼用指針實現兩矩陣的相加
void MatrixAdd(int *a,int *b,int *result,int n)//a,b兩個n階矩陣相加,結果保存在矩陣result中(指針a,b,result分別用來接收三個二維數組的首地址)
{
int i;
for(i=0;in*n;i++)*(reslut+i)=*(a+i)+*(b+i);
}
c語言編寫函數,用指針實現矩陣相加,並且將結果矩陣的指針作為函數返回值
#include “stdio.h”
#include “stdlib.h”
int **matrixAdd(int x1[][3],int x2[][3],int row,int col)
{
int **a=NULL;
int i,j;
a=(int **)malloc(row*sizeof(int *));
for(i=0;irow;i++)
a[i]=(int *)malloc(col*sizeof(int));
for(i=0;irow;i++)
for(j=0;jcol;j++)
a[i][j]=x1[i][j]+x2[i][j];
return a;
}
int main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[2][3]={{11,12,13},{14,15,16}};
int ** result=NULL;
int i,j;
result=matrixAdd(a,b,2,3);
for(i=0;i2;i++)
{
for(j=0;j3;j++)
printf(“%d “,result[i][j]);
printf(“\n”);
}
free(result);
result=NULL;
}
結果:
怎麼C語言中怎麼用指針的方法將4*4的矩陣轉置
1、打開vs2015,新建一個Windows Form窗體程序或者控制台都可以。
2、 定義一個名為array1的數組並賦值:double[,] array1 = new double[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };下面求該矩陣轉置矩陣。
3、右鍵解決方案下的項目名,添加-類,創建一個名為「turnzhi」的類。
4、轉置類的代碼。
5、在主程序調用轉置類,用兩個for循壞將轉置後的數組(array)輸出來;並將結果顯示在textbox中。
6、轉置後的結果正確,這樣我們就實現了c#矩陣的轉置運算。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/220042.html