Ⅰ c语言编程:求3*3矩阵的转置矩阵
思路:定了两个二维数组分别存储转置前后的矩阵,接着for循环依次转置即可。
//参考代码
#include<stdio.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;i<3;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%2d ",b[i][j]);
printf("\n");
}
return 0;
}
/*
运行结果:
1 4 7
2 5 8
3 6 9
*/
Ⅱ 3*3矩阵转置 C语言 数组
思路:定了两个二维数组分别存储转置前后的矩阵,接着for循环依次转置即可。
//参考代码
#include<stdio.h>
intmain()
{
inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},b[3][3];
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%2d",b[i][j]);
printf(" ");
}
return0;
}
/*
运行结果:
147
258
369
*/
Ⅲ 您好~怎么样用C语言编写一个实现矩阵((3行3列)的转置,即行列互换
#include <stdio.h>
int fun(int array[3][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
return 0;
}
int main()
{
int i,j;
int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}};
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Converted array:\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%7d",array[j][i]);
printf("\n");
}
return 0;
}
Ⅳ 用C语言编程~~:输入三阶矩阵,输出该矩阵的转置矩阵。
转置就是把00和22交换,01和12,10和21交换。
太久没编C了,试着编一下。现在全是汇编思维。。。
#include <stdio.h>
main()
{
int i,j,t;
int a[3][3];
for(i=0;i<=2;i++)
{
for(j=0;j<=2,j++)
printf ("shu ru a[%d][%d]",i,j);
scanf ("%d",&a[i][j]); /*输入数据
}
a[2][2]=t;t=a[0][0];a[0][0]=t; /*交换
a[0][1]=t;t=a[1][2];a[1][2]=t;
a[1][0]=t;t=a[2][1];a[2][1]=t;
for(i=0;i<=2;i++)
{
for(j=0;j<=2,j++)
printf ("%d/t",&a[i][j]); /*输出
printf ("/n"); /*输入一排后提行
}
}
还有个方法就是在输出的时候把I和J换一下就行了。
上面的程序行列式没定义对,有点问题,你自己改改。
Ⅳ C语言大神给力呀! 将一个3×3阶矩阵转置,用一函数实现。在主函数中用scanf函数输入矩阵元素,
#include <stdio.h>
int main()
{
int t;
scanf("%d",&t);
int i;
for(i=0; i<t; i++)
{
int n,m;
scanf("%d%d",&n,&m);
int j,k;
int a[105][105],b[105][105];
for(j=0; j<n; j++)
for(k=0; k<m; k++)
{
scanf("%d",&a[j][k]);
b[k][j]=a[j][k];
}
for(j=0;j<m;j++)
{
for(k=0;k<n;k++)
{
if(k==n-1)
printf("%d",b[j][k]);
else
printf("%d ",b[j][k]);
}
if(j!=m-1)
printf("\n");
}
}
}
Ⅵ C语言、用指针方法实现一个3*3矩阵的转置
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
void move(int*pointer);//函数声明
int a[3][3],i,j;
int*p;
cout<<"请输入矩阵元素:"<<endl;
for(i=0;i<3;i++)//输入数组
{
for(j=0;j<3;j++)
{
cin>>a<i>[j];
}
}
cout<<"输出原矩阵:"<<endl;//输出矩阵
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<setw(5)<<a<i>[j];
}
cout<<endl;
}
p=&a[0][0];//将数组首元素赋给指针变量p
move(p);//函数调用
cout<<"处理后的矩阵:"<<endl;
for(i=0;i<3;i++)//输出处理后的矩阵
{
for(j=0;j<3;j++)
{
cout<<setw(5)<<a<i>[j];
}
cout<<endl;
}
return 0;
}
//交换函数
void move(int*pointer)
{
int i,j,t;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
t=*(pointer+3*i+j);//这是关键将矩阵转置的条件
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
}
(6)c语言如何实现3阶矩阵内转置扩展阅读:
用函数
#include<stdio.h>
int main()
{
void move(int*s);
int a[3][3];int i=0;
int*p=&a[0][0];
printf("请输入一个3*3的数组: ");
for(i=0;i<3;i++)
{
scanf("%d%d%d",&a<i>[0],&a<i>[1],&a<i>[2]);
}
move(p);
printf("转置后的结果: ");
for(i=0;i<3;i++)
{
printf("%d%d%d ",a<i>[0],a<i>[1],a<i>[2]);
}
return 0;
}
void move(int*s)
{
int i,j,t;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
t=*(s+3*i+j);
*(s+3*i+j)=*(s+3*j+i);
*(s+3*j+i)=t;
}
}
}
Ⅶ 将一个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++));//输出转置矩阵
}
(7)c语言如何实现3阶矩阵内转置扩展阅读:
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,“循环变量"则从“初值"开始逐一递减到“终值",每次执行一次循环体语句。
Ⅷ 各位大大,"用一个函数将一个3X3的整型矩阵转置"是什么意思用C语言怎么做
矩阵转置就是行变为列,列变为行。具体示例如下:
#include<stdio.h>
voidfun(inta[3][3])
{
inti,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)
{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
}
//以上为用于转置矩阵的函数,就是题目要求的函数,以下为主函数
voidmain()
{
inti,j,a[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
fun(a);
for(i=0;i<3;i++)
{
printf(" ");
for(j=0;j<3;j++)
printf("%-4d",a[i][j]);
}
}
运行示例:
Ⅸ !!!跪求C语言实现矩阵运算(加,减,乘、求逆、转置)
1、首先打开vs2015(其他版本也可以),新建一个Windows Form窗体程序或者控制台都可以。
Ⅹ c语言如何通过定义函数来转置矩阵
#include <stdio.h>
int main()
{ struct aaa
{ int x;
int y;
};
struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
int i,j;
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf(" ");
}
printf("after: ");
for(i=0; i<3; i++)
for(j=0; j<i; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf(" ");
}
return 0;
}
或:
#include <stdio.h>
struct aaa
{ int x;
int y;
};
void zhuan(struct aaa a[][3])
{ struct aaa t;
int i,j;
for(i=0; i<3; i++)
for(j=0; j<i; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
void prt(struct aaa a[][3])
{ int i,j;
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf(" ");
}
}
int main()
{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
prt(a);
zhuan(a);
printf("after: ");
prt(a);
return 0;
}