导航:首页 > 编程语言 > c矩阵转置代码

c矩阵转置代码

发布时间:2022-09-11 18:17:14

『壹』 将一个3x3的矩阵转置,怎样用c语言写

#include<stdio.h>

int main()

{

int a[3][3];int*i;

for(i=*a;i<*a+9;scanf("%d",i++));//输入矩阵

void trans(int(*p)[3]);//声明转换函数

trans(a);

}

void trans(int(*p)[3])

{

int i,j,t,*k;

for(i=0;i<3;i++)

for(j=0;j<i;j++)

{

t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;//行列交换

}

for(i=0;i<3;i++,printf(" "))

for(k=*(p+i);k<*(p+i)+3;printf("%2d",*k++));//输出转置矩阵

}

(1)c矩阵转置代码扩展阅读:

C#中for语句的语法:

for(initialization;Boolean expression;update control variable)

statement

其中,statement(语句)是for循环主体,要么是一个语句,要么是用大括号{}封闭的代码块。[3]

例子1:

static void Main(string[]args)

{

for(int i=0;i<10;i++)

{

Console.WriteLine(i);

Console.ReadLine();

}

}

例子2:

static void Main(string[]args)

{

int i=0;

for(;i<10;i++)

{

Console.WriteLine(i);

Console.ReadLine();

}

}

例子2运算得到例子1相同的结果。

Pascal语言中的for循环

循环次数已知时,可以用for语句实现循环结构。

for语句有两种格式:递增型和递减型。

(1)递增型for语句格式

for<循环变量>:=<初值>to<终值>do<语句>;

(2)递减型for语句格式,

for<循环变量>:=<初值>downto<终值>do<语句>;

其中,“循环变量"为一个有序类型的数据,

在第一种形式中,使用的是保留字to,循环变量则从“初值"开始逐一增加到“终值";

在第二种形式中,使用的是保留字downto,“循环变量"则从“初值"开始逐一递减到“终值",每次执行一次循环体语句。

『贰』 用C语言实现矩阵转置

//Transpose
#include <stdio.h>
#define MAX 20
int m,n;
void transpose(double a[][MAX],double b[][MAX])
{
int i,j;
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
b[i][j]=a[j][i];
}

void main()
{
int i,j;
double a[MAX][MAX],b[MAX][MAX];
puts("Please input the dimensions of the matrixe:");
puts("(in term of “2 3”).");
scanf("%d %d",&m,&n);
puts("Enter the matrix:");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%lf",&a[i][j]);
transpose(a,b);

puts("The Transpose as follow:");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(b[i][j]-int(b[i][j])!=0)
printf("%lf ",b[i][j]);
else
printf("%d ",int(b[i][j]));
}
puts("");
}
}
//我这个能实现任意大小的,还有提示输入输出

『叁』 C语言的矩阵转置

#include "StdAfx.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define length 3//指定长度
/*装置矩阵*/
void transposition(int Array[length][length])
{
int ArrayTemp[length][length];
for (int i = 0;i < length;i++)
{
for (int j = 0;j < length;j++)
{
ArrayTemp[j][i] = Array[i][j];
}
}
for (i = 0;i < length;i++)
{
for (int o =0;o < length;o++)
{
Array[i][o] = ArrayTemp[i][o];
}
}
return;
}
main()
{
int i,j;
/*printf("please input length\n");
scanf("%d",&length)*/
int Array[length][length];
printf("please input transposition\n");
for (i = 0;i < length;i++)
{
for (j = 0;j < length;j++)
{
scanf("%d",&Array[i][j]);
}
}
for (i = 0;i < length;i++)
{
for (j = 0;j < length;j++)
{
printf("%3d",Array[i][j]);
}
printf("\n");
}
printf("\n\n");
transposition(Array);
for (i = 0;i < length;i++)
{
for (j = 0;j < length;j++)
{
printf("%3d",Array[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}

『肆』 c语言 矩阵转置的编写

#include "stdio.h"
void main()
{
void zhuan(int array[2][3],int b[3][2]);
int array[2][3],b[3][2]; int i,j;
printf("input:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
scanf("%d",&array[i][j]);
}
printf("\n");
zhuan(array,b);
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%d",b[i][j]);
printf("\n");
}
}
void zhuan(int array[2][3],int b[3][2]) //转置函数逻辑错误,没那么麻烦,直接版转就是权了!
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
b[j][i]=array[i][j];
}
}

『伍』 C语言编程实现2*3的矩阵转置

#include<iostream>

usingnamespacestd;

voidzhuang(inta[3][3])

{intm,n,i;

for(m=0;m<2;m++)

for(i=0;i<3;i++)

{if(m!=1||i!=0)

{n=a[i][m];

a[i][m]=a[m][i];

a[m][i]=n;

intmain()

inta[3][3];

inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>a[i][j];

zhuang(a);

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cout<<a[i][j]<<"";

cout<<endl;

return0;

cout&lt;&lt;"处理后的矩阵:"&lt;&lt;endl;

for(i=0;i&lt;3;i++)//输出处理后的矩阵

for(j=0;j&lt;3;j++)

cout&lt;&lt;setw(5)&lt;&lt;a&lt;i&gt;[j];

cout&lt;&lt;endl;

return0;

//交换函数

voidmove(int*pointer)

inti,j,t;

for(i=0;i&lt;3;i++)

for(j=i;j&lt;3;j++)

t=*(pointer+3*i+j);//这是关键将矩阵转置的条件

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

运行效果:

(5)c矩阵转置代码扩展阅读:

在C语言或C++中,会把用来#include的文件的扩展名叫.h,称其为头文件。

#include文件的目的就是把多个编译单元(也就是c或者cpp文件)公用的内容,单独放在一个文件里减少整体代码尺寸;或者提供跨工程公共代码。在现行的c++版本中,应用这个头文件应是#include<stdio.h>

stdio 就是指 “standard input & output"(标准输入输出)所以,源代码中如用到标准输入输出函数时,就要包含这个头文件!

例如c语言中的 printf("%d",i); scanf("%d",&i);等函数。

『陆』 用C语言编写一个矩阵转置的函数,矩阵的行数和列数在程序中由用户输入,请问怎么写,非常感谢

我的代码逻辑是:

矩阵行指针初值指向每行首地址,迭代依次取所有行指针指向值组成新行,所有行指针自增。最终组合新的矩阵。

#include<stdio.h>
#include<malloc.h>
int**getList(introw,intclo);//获取矩阵地址空间
voidsetNum(int**nList,intn);//填写数值
voidprtList(int**nList,introw,intclo);//打印矩阵
int**zz(int**nList,introw,intclo);//转置函数

intmain()
{
introw,clo,**nList=NULL,**nListSave=NULL;

printf("输入矩阵行列数:");
scanf("%d%d",&row,&clo);
nList=getList(row,clo);
setNum(nList,row*clo);

printf("输入的矩阵为: ");
prtList(nList,row,clo);

printf("转置后的矩阵为: ");
nListSave=zz(nList,row,clo);
free(nList);
nList=nListSave;
prtList(nList,clo,row);
return0;
}

int**zz(int**nList,introw,intclo)
{
int*nSave=NULL,**listSave=NULL,**listp=nList,*p=NULL,i,j;
nSave=(int*)malloc(sizeof(int)*row*clo);
listSave=(int**)malloc(sizeof(int*)*clo);//倒置后的矩阵
p=nSave;

for(j=0;j<clo;j++)
{
for(i=0;i<row;i++)
{
*p++=*listp[i];
listp[i]=listp[i]+1;
}
}
for(i=0;i<clo;i++)
listSave[i]=&nSave[i*row];

for(i=0;i<row;i++)
free(nList[i]);//释放原矩阵行空间
returnlistSave;
}
voidprtList(int**nList,introw,intclo)
{
inti,j;
for(i=0;i<row;i++)
{
for(j=0;j<clo;j++)
printf("%d",nList[i][j]);
printf(" ");
}
}
voidsetNum(int**nList,intn)
{
int*p=nList[0];
printf("填写矩阵中%d个数值: ",n);
while(n-->0)
scanf("%d",p++);
}
int**getList(introw,intclo)
{
int*nums,**nList,i;
nums=(int*)malloc(sizeof(int)*row*clo);
nList=(int**)malloc(sizeof(int*)*row);
for(i=0;i<row;i++)
nList[i]=&nums[i*clo];
returnnList;
}

『柒』 C语言矩阵转置

//#include "stdafx.h" //////////////VC中没有该头文件
#include<math.h>
#include<stdio.h>
#include<stdlib.h>

void shuru( int a[5][5]);
void zhuan(int a[5][5]);
int main(int argc, char* argv[])
{
int a[5][5];
shuru(a);//////////////////a[5][5]改成a
zhuan(a);///////////////a[5][5]改成a
return 0;
}
void shuru( int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{a[i][j]=rand()%101;}/////////////random(101)改成rand()%101,取0-101的随机数
}
printf("chushi:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
void zhuan(int a[5][5])
{
int t,i,j;
for(i=0;i<5;i++)
{
for(j=i;j<5;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
printf("wancheng:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}

『捌』 !!!跪求C语言实现矩阵运算(加,减,乘、求逆、转置)

1、首先打开vs2015(其他版本也可以),新建一个Windows Form窗体程序或者控制台都可以。

『玖』 C语言 ,求转置矩阵

根据数学定义可以知道,对于矩阵P,其第m行n列上的元素,是其转内置矩阵的n行m列元素。

从此可以容得出程序如下:

#defineM10
#defineN5
//以10行5列为例,可以任意修改。
voidconvert(inta[M][N],intb[N][M])//求a的转置矩阵,结果存于b中。
{
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
b[j][i]=a[i][j];//转置运算。
}
阅读全文

与c矩阵转置代码相关的资料

热点内容
苹果6官网听筒费用 浏览:864
出国手机网络被锁怎么解 浏览:91
angularjskarma测试 浏览:416
后缀为oxps文件转换word 浏览:944
仓库管理需要哪些数据表 浏览:195
如何建立微信数据库 浏览:305
diy数据线需要什么工具 浏览:806
为企业营销网站加分的选项有哪些 浏览:499
新东方直播课app有哪些 浏览:615
ping小工具 浏览:57
系统找不到文件chrome 浏览:385
java生成发布版本号 浏览:863
qq空间小窝全屏空间 浏览:667
小米手机的所有程序按钮 浏览:497
大数据拉边框认字什么 浏览:30
虚商号在哪个网站买 浏览:216
微信已发消息数字怎样修改法 浏览:657
qq宠物网络繁忙请稍后再试为什么 浏览:747
iphone6升级84失败 浏览:112
更新ios只需输入锁屏密码吗 浏览:580

友情链接