1、首先在編輯器中準備好一個空白的c語言文件,引入C語言標準庫,在main函數(shù)中定義一個3x3階矩陣以及循環(huán)體中要用的變量i和j,以及一個用來交換數(shù)據(jù)的臨時變量tmp,然后下一步就可以開始編寫處理轉(zhuǎn)置的部分了:

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站設計制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的榕城網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
2、二維數(shù)組需要用兩層循環(huán)輸出,而算法是將一個3x3階矩陣轉(zhuǎn)置時,只需將主對角線右上方的數(shù)組元素“n[0][1]”、“n[0][2]”、“n[1][2]”,分別與主對角線左下放的數(shù)組元素“n[1][0]”、“n[2][0]”、“n[2][1]”的值通過一個臨時變量進行交換即可實現(xiàn)矩陣的轉(zhuǎn)置:
3、最后一步運行程序,在右側(cè)的命令行可以看到轉(zhuǎn)置后的結(jié)果,以上就是用c語言實現(xiàn)矩陣轉(zhuǎn)置的操作:
#includestdio.h
int main()
{
void move(int *s);
int a[3][3];int i=0;
int *p=a[0][0];
printf("請輸入一個3*3的數(shù)組:\n");
for(i=0;i3;i++)
{
scanf("%d%d%d",a[i][0],a[i][1],a[i][2]);
}
move(p);
printf("轉(zhuǎn)置后的結(jié)果:\n");
for(i=0;i3;i++)
{
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
return 0;
}
void move(int *s)
{
int i,j,t;
for(i=0;i3;i++)
{
for(j=i;j3;j++)
{
t=*(s+3*i+j);
*(s+3*i+j)=*(s+3*j+i);
*(s+3*j+i)=t;
}
}
}
擴展資料:
在C語言或C++中,會把用來#include的文件的擴展名叫 .h,稱其為頭文件。
#include文件的目的就是把多個編譯單元(也就是c或者cpp文件)公用的內(nèi)容,單獨放在一個文件里減少整體代碼尺寸;或者提供跨工程公共代碼。在現(xiàn)行的c++版本中,應用這個頭文件應是#includestdio.h
stdio 就是指 “standard input output"(標準輸入輸出)所以,源代碼中如用到標準輸入輸出函數(shù)時,就要包含這個頭文件!
例如c語言中的 printf("%d",i); scanf("%d",i);等函數(shù)。
引用方法
#include stdio.h
(注:在TC2.0中,允許不引用此頭文件而直接調(diào)用其中的函數(shù),但這種做法是不標準的。也不建議這樣做。以避免出現(xiàn)在其他IDE中無法編譯或執(zhí)行的問題。)
標準函數(shù)
int getchar()//從標準輸入設備寫入一個字符
int putchar()//向標準輸出設備讀出一個字符
int scanf(char*format[,argument…])//從標準輸入設備讀入格式化后的數(shù)據(jù)
int printf(char*format[,argument…])//向標準輸出設備輸出格式化字符串
char* gets(char*string)//從標準輸入設備讀入一個字符串
int puts(char*string)//向標準輸出設備輸出一個字符串
int sprintf(char*string,char*format[,…])//把格式化的數(shù)據(jù)寫入某個字符串緩沖區(qū)。
#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]);//聲明轉(zhuǎn)換函數(shù)
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++));//輸出轉(zhuǎn)置矩陣
}
擴展資料:
C#中for語句的語法:
for(initialization;Boolean expression;update control variable)
statement
其中,statement(語句)是for循環(huán)主體,要么是一個語句,要么是用大括號{}封閉的代碼塊。[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相同的結(jié)果。
Pascal語言中的for循環(huán)
循環(huán)次數(shù)已知時,可以用for語句實現(xiàn)循環(huán)結(jié)構(gòu)。
for語句有兩種格式:遞增型和遞減型。
(1)遞增型for語句格式
forlt;循環(huán)變量gt;:=lt;初值gt;tolt;終值gt;dolt;語句gt;;
(2)遞減型for語句格式,
forlt;循環(huán)變量gt;:=lt;初值gt;downtolt;終值gt;dolt;語句gt;;
其中,“循環(huán)變量"為一個有序類型的數(shù)據(jù),
在第一種形式中,使用的是保留字to,循環(huán)變量則從“初值"開始逐一增加到“終值";
在第二種形式中,使用的是保留字downto,“循環(huán)變量"則從“初值"開始逐一遞減到“終值",每次執(zhí)行一次循環(huán)體語句。
分享標題:c語言33矩陣轉(zhuǎn)置函數(shù) c語言3*4轉(zhuǎn)置矩陣
鏈接分享:http://chinadenli.net/article32/hpjhpc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站策劃、云服務器、虛擬主機、關鍵詞優(yōu)化、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)