當前位置:首頁 » 編程語言 » c語言一維數組轉置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言一維數組轉置

發布時間: 2022-10-25 14:02:57

c語言數組轉置

//try it 試試看
#include <stdio.h>
void transpose( int a[6][6],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
for (j=0;j<i;j++)
{temp=a[i][j];a[i][j]=a[j][i];a[j][i]=temp;}

}
void main()
{
int i,j,a[6][6],n;
printf("please input the 維度<1-6>:");
scanf("%d",&n);
printf("請輸入數組元素:\n");
for (i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
transpose(a,n);
printf("操作後的數組為:\n");
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);printf("\n");
}

㈡ 編寫一個矩陣轉置的函數,矩陣的行、列在程序中由用戶輸入

用一維數組實現的,本身C語言就是用一維存儲的二維數組,這個沒有區別,
#include <iostream>
#include<stdio.h>
using namespace std;

void covatrix(int *mtrx,int *mtrx1,int n,int k);
int main()
{

int n,k;
int *mtrx;
int *mtrx1;
int i,j;
printf("輸入矩陣行數\n");
scanf("%d",&n);
printf("輸入矩陣列數:\n");
scanf("%d",&k);

printf("請輸入矩陣元素\n");
mtrx=new int[n*k];//申請內存
mtrx1= new int[n*k];
for(i=0;i<n;i++)
for(j=0;j<k;j++)
{scanf("%d",&mtrx[i*k+j]);
}

covatrix(mtrx,mtrx1,n,k);
for(i=0;i<k;i++)
{ for(j=0;j<n;j++)
{printf("%d ",mtrx1[i*n+j]);//輸出轉置後的矩陣元素

}printf("\n");}

cin.get();
return 0;
}
void covatrix(int *mtrx,int *mtrx1,int n,int k)//n為原矩陣的列數,k為原矩陣的行數
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<n;j++)
{mtrx1[j*k+i]=mtrx[i*n+j];}

}

㈢ c語言中 將數組列換行 行換列

1、如果是二維數組,將就可按行輸出就行:
for(i=0;i<3;i++) //按每一行輸出,每循環一次輸出一行
{ for(j=0;j<3;j++) //輸出每一行中的每一列
printf("%3d",a[i][j]);
printf("\n"); //每輸出一行,輸出一個換行符
}

2、如果是一維數組,可按每行輸出的數的個數來控制:
for(i=0;i<9;i++)
{ printf("%3d",a[i]); //a為一維數組
if((i+1)%3==0) printf("\n"); //每行輸出三個數,因為數組的下標i從0開始,所以先加個1再除3取余數
}

㈣ c程序數組的轉置

你的數組轉置程序,主要有兩個問題,

一 C語言二維數組的參數聲明和傳參不正確

二 二維數組的轉置,只需要以主對角線為軸翻轉一次就行了,

因此,transport函數中for_j循環的終止條件應該為j<i;

改正後的數組轉置C語言程序如下(改動的地方見注釋)

#include<stdio.h>

int main()

{

int a[3][3];

int i,j;

void transport(int a[][3]);//這里把返回值類型int改成void,把a[3][3]改成a[][3]

printf("input:");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

scanf_s("%d",&a[i][j]);//這里建議把scanf_s改成scanf

}

transport(a);//這里把a[3][3]改成a

for(i=0;i<3;i++)

{//這里加大括弧

for(j=0;j<3;j++)

printf("%3d",a[i][j]);

printf(" ");//這里加一句,換行

}//這里加大括弧

return 0;

}

void transport(int a[][3])//這里把返回值類型int改成void,把a[3][3]改成a[][3]

{

int i,j,t;

for(i=0;i<3;i++)

for(j=0;j<i;j++)//這里把j<3;改成j<i;

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

㈤ 怎麼用C語言求轉置矩陣(一維數組)

設數組是MxN

int transpos(const int from[M*N], int to[M*N])
{
for (int i=0;i<M;i++) for (int j=0;j<N;j++)
to[j*N+i]=from[i*N+j];
return 1;
}

㈥ 矩陣轉置c++ 為何只能輸出個位數

將一個m*n的二維數組的行和列元素互換(如下圖所示)。

註:T代表轉置。

輸入格式
輸入矩陣的行和列數,用空格隔開。接下來輸入矩陣的數據。(1<m,n<100)

輸出格式
輸出轉置後的結果。

樣例輸入
2 3
1 2 3
4 5 6
樣例輸出
1 4
2 5
3 6
#include<iostream>
using namespace std;
int main()
{
int n,m,mat[101][101],i,j; //創建二維數組mat
cin>>m>>n;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cin>>mat[j][i]; //輸入二維數組mat(按規律輸入)
}
}
for (i = 0; i <n; i++)
{
for (j = 0; j <m; j++)
{
cout<<mat[i][j]<<" "; //按順序輸出二維數組mat
}
cout<<endl;
}
return 0;
}
打開CSDN,閱讀體驗更佳

C++矩陣轉置實現
程序寫的比較簡單,是用C++實現的,可運行成功。
C++實現矩陣原地轉置演算法
本文實例描述了C++實現矩陣原地轉置演算法,是一個非常經典的演算法,相信對於學習C++演算法的朋友有很大的幫助。具體如下: 一、問題描述 微軟面試題:將一個MxN的矩陣存儲在一個一維數組中,編程實現矩陣的轉置。 要求:空間復雜度為O(1) 二、思路分析 下面以一個4x2的矩陣A={1,2,3,4,5,6,7,8}進行分析,轉置過程如下圖: 圖中右下角的紅色數字
瀏覽器打開
參與評論 請先 登錄 後發表或查看評論
C++矩陣轉置_酥酥~的博客_c++矩陣的轉置
C++矩陣轉置 矩陣轉置(20分) 題目內容:用戶輸入矩陣階數,然後按行輸入所有矩陣元素(整數),將該矩陣轉置輸出。階數應是[1,5]之間的整數,不在該區間時,顯示「matrix order error」。 輸入格式:第1行,一個整數,表示階數n。以後是n行...
矩陣轉置——C++實現_ling08140814的博客_c++矩陣轉置函數
C++代碼:#include<iostream>using namespace std;int main() { int m, n, array[50][50], result[50][50]; cin >> m >> n; for (int i = 0; i<m; i++) { for (int j = 0; j...
C++----矩陣轉置
題目 要求將一個矩陣轉置 由用戶輸入行列 思路: 如果有用戶輸入行列的話,我們不知道用戶輸入了一個幾維的數組,所以這樣要回歸到數組的本來定義是申請一塊連續的存儲空間,比如一個二維數組存儲情況的一維表現就是a11,a12,a21,a22。所以利用這個特性,來解決這個問題。 #include<iostream> using namespace std; void convert(int *array,int n) { int i,j,k; for(i=0;i<n;i++)
瀏覽器打開
熱門推薦 C++矩陣求轉置矩陣
n階矩陣求轉置,也就是沿著左對角線反轉矩陣;a[i][j] 與 a[j][i] 對換。演算法實現:#include<iostream> using namespace std; template<class T> void swap(T* a, T* b) { T temp = a; *a = *b; *b = temp; return; } template<...
瀏覽器打開
C++實現矩陣轉置_青陽不會被佔用的博客_c++實現矩陣轉置
1.轉置原理 矩陣轉置:即在i行j列的元素與j行i列的元素互換 2.C++實現 template<typename T>voidtranspose(T**a,introws){//原地完成矩陣a[0:rows-1][0:rows-1]的轉置for(inti=0;i<rows;i++){for(intj=i+1;j<rows;...
用c語言實現矩陣的轉置演算法,C++實現矩陣原地轉置演算法...
本文實例描述了C++實現矩陣原地轉置演算法,是一個非常經典的演算法,相信對於學習C++演算法的朋友有很大的幫助。具體如下: 一、問題描述 微軟面試題:將一個MxN的矩陣存儲在一個一維數組中,編程實現矩陣的轉置。
C++矩陣轉置
矩陣轉置(20分) 題目內容:用戶輸入矩陣階數,然後按行輸入所有矩陣元素(整數),將該矩陣轉置輸出。階數應是[1,5]之間的整數,不在該區間時,顯示「matrix order error」。 輸入格式...
瀏覽器打開
NYOJ - 求轉置矩陣問題
求轉置矩陣問題 時間限制:3000 ms | 內存限制:65535 KB 難度:2 描述 求一個三行三列的轉置矩陣。 輸入第一行一個整數n 每組測試數據是九個整型數(每個數都不大於10000),分別為矩陣的的每項; 輸出每組測試數據的轉置矩陣; 請在每組輸出之後加一個換行 樣例輸入 2 1 2 3 4 5 6 7 8 9 2 3
瀏覽器打開
C++實現矩陣原地轉置演算法_cncnlg的博客_c++矩陣轉置
本文實例描述了C++實現矩陣原地轉置演算法,是一個非常經典的演算法,相信對於學習C++演算法的朋友有很大的幫助。具體如下: 一、問題描述 微軟面試題:將一個MxN的矩陣存儲在一個一維數組中,編程實現矩陣的轉置。
C++ vector實現矩陣轉置_nudt_qxx的博客_vector轉置
C++ vector實現矩陣轉置 其實就是熟悉vector二維數組操作的一個過程,代碼本身是沒有太大難度的,直接上code: #include <iostream>#include <vector>usingnamespacestd;vector<vector<int>>transpose02(vector<vector<int>>& A) {intleny...
轉置矩陣的c++代碼,實現矩陣轉置
實現矩陣的轉置,可供用戶使用方便快捷,大大減少了時間。
【數據結構】矩陣轉置(C/C++語言實現)
文章目錄一、 問題二、思路三、代碼實現代碼優化 一、 問題 將矩陣轉置效果如下圖 二、思路 1、創建a, b兩個數組,a存放轉置前的矩陣, b存放轉置後的矩陣 2、觀察可得轉置後的矩陣行列序號互換,此步由b數組實現 三、代碼實現 #include <stdio.h> int main() { int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}, b[4][3], i, j; //a[3][4]為轉置前數組, b[4][
瀏覽器打開

C++矩陣轉置矩陣轉置矩陣轉置
C++矩陣轉置代碼!
template class T 什麼意思
不多說,直接上代碼 #include<bits/stdc++.h> using namespace std; template < class T >//template < typename T > T mmm( T a, T b ) { return a < b ? b : a; } //在這就相當於一種類型 int main() { int x=...
瀏覽器打開
C/C++實現矩陣的轉置
#include using namespace std; const int N = 5; int matrix[5][5] = { 1,2,3,4,5, 1,2,3,4,5, 1,2,3,4,5, 1,2,3,4,5, 1,2,3,4,5 }; void swap(int &a,int &b) { a=a^b; b=a^b;
瀏覽器打開
最新發布 矩陣轉置(C++) kkmd66
易錯點 主要就是格式,注意最後一個輸出要單獨拿出來輸出,不能有空格或者換行。 Description: 輸入N*N的矩陣,輸出它的轉置矩陣。矩陣的轉置操作,即把矩陣的行元素變為列元素、列元素變為行元素的過程。 Input: 第一行為整數N。接著是一個N*N的矩陣。N<=20 Output: 轉置矩陣。數字之間用空格隔開,結尾無空格,兩行之間無空行。 Sample Input: 2 1 2 1 2 Sample Output: 1 1 2 2 #include <iostream> #inc
瀏覽器打開
C++實現矩陣轉置
1.轉置原理 矩陣轉置:即在i行j列的元素與j行i列的元素互換 2.C++實現 template<typename T> void transpose(T **a,int rows) {//原地完成矩陣a[0:rows-1][0:rows-1]的轉置 for(int i=0;i<rows;i++) { for(int j=i+1;j<rows...
瀏覽器打開

㈦ 請問C語言中的convert是什麼

這個是自定義函數吧。在C語言函數庫中沒有這個。我這里有個例子,使給定的一個二維數組(3*3)轉置
/* 函數功能: 對任意row行col列的矩陣轉置函數入口參數: 指向一維整型數組的指針變數a,指向單元存放轉置前的矩陣元素 整型變數row,矩陣的行數即二維整型數組的行數 整型變數col,矩陣的列數即二維整型數組的列數函數出口參數: 指向一維整型數組的指針變數at,指向單元存放轉置後的矩陣元素 函數返回值: 無*/void convert(int (*a)[COL], int (*at)[ROW], int row, int col){ int i, j; for (i=0; i<row; i++) { for (j=0; j<col; j++) { *(*(at+j)+i) = *(*(a+i)+j); } }}

㈧ C語言 ,求轉置矩陣

根據數學定義可以知道,對於矩陣P,其第m行n列上的元素,是其轉置矩陣的n行m列元素。

從此可以得出程序如下:

#defineM10
#defineN5
//以10行5列為例,可以任意修改。
voidconvert(inta[M][N],intb[N][M])//求a的轉置矩陣,結果存於b中。
{
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
b[j][i]=a[i][j];//轉置運算。
}

㈨ c語言矩陣轉置和快速轉置怎麼求

sinz=[e^(iz)-e^(-iz)]/2i=2
==> e^(iz)-e^(-iz)=4i
設x=e^(iz),那麼有
x-1/x=4i
==> x^2-4ix-1=0
x=[4i±√(-16+4)]/2
x=(2±√3)i
x=e^(iz)=(2±√3)i
==> iz=Ln[(2±√3)i]
==> iz=ln|(2±√3)i|+iArg((2±√3)i)+i2nπ
==> iz=ln(2±√3)+iπ/2+i2nπ
==> z=-iln(2±√3)+π/2+2nπ
這里|*|代表求模的意思,Arg為輻角主值,這里,(2±√3)i對應的角度是π/2。

㈩ C語言,使一個3*3的數組轉置,即行列互換

#include<stdio.h>
intmain()
{
inta[3][3],b,c,d;
for(b=0;b<3;b++)
for(c=0;c<3;c++)
scanf("%d",&a[b][c]);
printf(" ");
for(b=0;b<3;b++)
for(c=b+1;c<3;c++)
{
d=a[b][c];
a[b][c]=a[c][b];
a[c][b]=d;
}
for(b=0;b<3;b++)
{for(c=0;c<3;c++)
printf("%d",a[b][c]);
printf(" ");
}
return0;
}