C語言矩陣轉(zhuǎn)置
本實(shí)例是利用數(shù)組解決線性代數(shù)中的矩陣轉(zhuǎn)置問題。
設(shè)有一矩陣為 m×n 階(即 m 行 n 列),第 i 行 j 列的元素是 a(i,j),需要將該矩陣轉(zhuǎn)置為 n×m 階的矩陣,使其中元素滿足 b(j,i)=a(i,j)。
算法思想
由數(shù)學(xué)知識(shí)可知,將第一個(gè)矩陣的所有元素繞著一條從第一行第一列出發(fā)的右下角 45° 的射線做鏡面反轉(zhuǎn),即可得到該矩陣的轉(zhuǎn)置。
程序代碼
#include <stdio.h>
int main()
{
int i,j,i1,j1,a[101][101],b[101][101];
printf("please input the number of rows(<=100)\n");
scanf("%d",&i1);
printf("please input the number of columns(<=100)\n");
scanf("%d",&j1);
printf("please input the element\n");
for(i=0;i<i1;i++)
for(j=0;j<j1;j++)
scanf("%d",&a[i][j]);
printf("array a:\n");
for(i=0;i<i1;i++)
{
for(j=0;j<j1;j++)
printf("\t%d",a[i][j]);
printf("\n");
}
for(i=0;i<i1;i++)
for(j=0;j<j1;j++)
b[j][i]=a[i][j];
printf("array b:\n");
for(i=0;i<j1;i++)
{
for(j=0;j<i1;j++)
printf("\t%d",b[i][j]);
printf("\n");
}
return 0;
}
調(diào)試運(yùn)行結(jié)果
在本實(shí)例中,需要自定義第一個(gè)數(shù)組(程序中的數(shù)組即代表數(shù)學(xué)中的矩陣),也就是需要轉(zhuǎn)置運(yùn)算的數(shù)組 A,定義分三個(gè)步驟進(jìn)行:第一步,定義該數(shù)組的行數(shù);第二步,定義該數(shù)組的列數(shù);第三步,定義該數(shù)組的元素,然后被定義的數(shù)組經(jīng)過程序的運(yùn)算,輸出轉(zhuǎn)置后的數(shù)組 B。程序的運(yùn)行結(jié)果如下所示:
please input the number of rows(<=100)
3
please input the number of columns(<=100)
4
please input the element
1 2 3 4 5 6 7 8 9 10 11 12
array a:
1 2 3 4
5 6 7 8
9 10 11 12
array b:
1 5 9
2 6 10
3 7 11
4 8 12
總結(jié)
在本實(shí)例中,主要運(yùn)用了二維數(shù)組,二維數(shù)組的使用說明如下:
① 二維數(shù)組的第一個(gè)下標(biāo)表示行數(shù),第二個(gè)下標(biāo)表示列數(shù),每個(gè)下標(biāo)都是從 0 開始;
② 類型說明符、數(shù)組名和常量表達(dá)式的意義與一維數(shù)組相同;
③ 二維數(shù)組的元素在內(nèi)存中是“按行存放”,即在內(nèi)存中先順序存放第一行的元素,再存放第二行的元素,以此類推;
④ 可以把二維數(shù)組看作一種特殊的一維數(shù)組,其特殊之處在于它的每一個(gè)元素又是一維數(shù)組。
作者:大學(xué)生新聞網(wǎng) 來源:大學(xué)生新聞網(wǎng)
發(fā)布時(shí)間:2025-03-09 閱讀:
- C語言兔子生兔子問題
- 假設(shè)一對(duì)兔子的成熟期是一個(gè)月,即一個(gè)月可長(zhǎng)成成兔,那么,如果每對(duì)成兔每個(gè)月都生一對(duì)小兔
- 03-09 關(guān)注:0
- C語言矩陣轉(zhuǎn)置
- 本實(shí)例是利用數(shù)組解決線性代數(shù)中的矩陣轉(zhuǎn)置問題。
- 03-09 關(guān)注:0
- C語言求回文素?cái)?shù)
- 任意的整數(shù),當(dāng)從左向右讀與從右向左讀是相同的,且為素?cái)?shù)時(shí),稱為回文素?cái)?shù)。求 1000 以內(nèi)的所有回文素?cái)?shù)。
- 03-09 關(guān)注:0