c语言函数33矩阵转置 c语言矩阵的转置程序解题思路

将一个3x3的矩阵转置,怎样用c语言写?#includelt;stdio.hgt;
int main()
{
int a[3][3];int*i;
for(i=*a;ilt;*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;ilt;3;i++)
for(j=0;jlt;i;j++)
{
t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;//行列交换
}
for(i=0;ilt;3;i++,printf("\n"))
for(k=*(p+i);klt;*(p+i)+3;printf("%2d",*k++));//输出转置矩阵
}
扩展资料:
C#中for语句的语法:
for(initialization;Boolean expression;update control variable)
statement
其中,statement(语句)是for循环主体 , 要么是一个语句 , 要么是用大括号{}封闭的代码块 。[3]
例子1:
static void Main(string[]args)
{
for(int i=0;ilt;10;i++)
{
Console.WriteLine(i);
Console.ReadLine();
}
}
例子2:
static void Main(string[]args)
{
int i=0;
for(;ilt;10;i++)
{
Console.WriteLine(i);
Console.ReadLine();
}
}
例子2运算得到例子1相同的结果 。
Pascal语言中的for循环
循环次数已知时 , 可以用for语句实现循环结构 。
for语句有两种格式:递增型和递减型 。
(1)递增型for语句格式
forlt;循环变量gt;:=lt;初值gt;tolt;终值gt;dolt;语句gt;;
(2)递减型for语句格式,
forlt;循环变量gt;:=lt;初值gt;downtolt;终值gt;dolt;语句gt;;
其中,“循环变量"为一个有序类型的数据,
在第一种形式中,使用的是保留字to , 循环变量则从“初值"开始逐一增加到“终值";
在第二种形式中,使用的是保留字downto,“循环变量"则从“初值"开始逐一递减到“终值",每次执行一次循环体语句 。
各位大大,"用一个函数将一个3X3的整型矩阵转置"是什么意思?用C语言怎么做?矩阵转置就是行变为列,列变为行 。具体示例如下:
#include stdio.h
void fun(int a[3][3])
{
int i,j,t;
for(i=0;i3;i++)
for(j=0;ji;j++)
{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
}
//以上为用于转置矩阵的函数,就是题目要求的函数,以下为主函数
void main()
{
int i,j,a[3][3];
for(i=0;i3;i++)
for(j=0;j3;j++)
scanf("%d",a[i][j]);
fun(a);
for(i=0;i3;i++)
{
printf("\n");
for(j=0;j3;j++)
printf("%-4d",a[i][j]);
【c语言函数33矩阵转置 c语言矩阵的转置程序解题思路】}
}
运行示例:
C语言编程:求3*3矩阵的转置矩阵思路c语言函数33矩阵转置:定c语言函数33矩阵转置了两个二维数组分别存储转置前后的矩阵c语言函数33矩阵转置 , 接着for循环依次转置即可 。
//参考代码
#includestdio.h
int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},b[3][3];
int i,j;
for(i=0;i3;i++)
for(j=0;j3;j++)
b[j][i]=a[i][j];
for(i=0;i3;i++)
{
for(j=0;j3;j++)
printf("%2d ",b[i][j]);
printf("\n");
}
return 0;
}
/*
运行结果c语言函数33矩阵转置:
147
258
369
*/
c语言:写一个函数,将输入的3*3的整形矩阵进行转置 用函数#includestdio.h
int main()
{
void move(int *s);
int a[3][3];int i=0;
int *p=a[0][0];
printf("请输入一个3*3的数组:\n");
for(i=0;i3;i++)
{
scanf("%d%d%d",a[i][0],a[i][1],a[i][2]);
}
move(p);
printf("转置后的结果:\n");
for(i=0;i3;i++)
{
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

推荐阅读