Ⅰ 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;
}