本文目录一览:
- 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#矩阵的转置运算。