C語言求矩陣的轉置
㈠ c語言用convert函數求矩陣的轉置
||參考代碼如下:
#include<stdio.h>
int A[10][10]={0};
void convert(int a[][10], int *m, int *n)
{
int i,j,t;
for(i=0;i<*m;++i)
for(j=i;j<*n;++j){
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
t=*m;
*m=*n;
*n=t;
}
int main()
{
int i,j,m,n;
scanf("%d%d",&m,&n);
if(m>10||n>10)
return 0;
for(i=0;i<m;++i)
for(j=0;j<n;++j)
scanf("%d",&A[i][j]);
convert(A,&m,&n);
for(i=0;i<m;++i){
for(j=0;j<n;++j)
printf("%d ",A[i][j]);
printf("\n");
}
return 0;
}
㈡ c語言 任意輸入一個矩陣 求它的轉置(用指針)
#include <stdio.h> #include <stdlib.h> void Transpose(int **p,int **q,int m,int n); void main() { int i,j, m,n,**p,**q; printf("Input lie and hang:\n"); scanf("%d%d",&m,&n); p=(int**)malloc(m*sizeof(int*)); for(i=0; i<m; i++) { p[i]=(int*)malloc(n*sizeof(int)); } printf("Input %d yuansu:\n",m*n); for(i=0; i<m; i++) { for(j=0; j<n; j++) { scanf("%d",&p[i][j]); } } for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("%4d",p[i][j]); } printf("\n"); } q=(int**)malloc(n*sizeof(int*)); for(i=0; i<n; i++) { q[i]=(int*)malloc(m*sizeof(int)); } Transpose(p,q,m,n); printf("Transpose....:\n"); for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%4d",q[i][j]); } printf("\n"); } } //函數功能: 將矩陣轉置 //函數參數: 指針,矩陣的行數和列數 //函數返回值:無 void Transpose(int **p,int **q,int m,int n) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) { q[i][j]=p[j][i]; } } }
㈢ C語言求轉置矩陣
代碼看起來沒什麼問題
檢查一下是不是你項目裡面加了其它文件
或者重建一個project
㈣ c語言用指針求矩陣轉置~
int *p1[N] 定義的是一個指針數組,而你傳進去的參數a卻是一個指針(地址).。參數類型不一版致,還權有就是, trans()函數沒有返回b數組,所以main()函數中列印的b數組是空的。至於這個*(*(p2+j)+i)=*(*(p1+i)+j); 我沒深究,你自己再看看吧
㈤ C語言,求3×3矩陣的轉置矩陣(在自身進行轉置)
#include<stdio.h>
void main(){
int a,b;
int c[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&c[i][j]);
printf("轉置前矩陣為\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%d ",c[i][j]);
if(j==2)
printf("\n");
}
printf("轉置後矩陣為\n");
for(i=0;i<2;i++)
for(j=1;j<3;j++)
{
a=c[i][j];
b=c[j][i];
c[i][j]=b;
c[j][i]=a;
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%d ",c[i][j]);
if(j==2)
printf("\n");
}}
你把數組定義錯了,前面剛定義了一個整型的a後面又把a拿來當做數組名,這樣的話編譯器會報錯的。你這個代碼稍微幫你改了下,你看現在是不是好點了。
㈥ c語言 矩陣轉置的編寫
#include "stdio.h"
void main()
{
void zhuan(int array[2][3],int b[3][2]);
int array[2][3],b[3][2]; int i,j;
printf("input:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
scanf("%d",&array[i][j]);
}
printf("\n");
zhuan(array,b);
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%d",b[i][j]);
printf("\n");
}
}
void zhuan(int array[2][3],int b[3][2]) //轉置函數邏輯錯誤,沒那麼麻煩,直專接轉就是了!屬
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
b[j][i]=array[i][j];
}
}
㈦ 怎麼用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;
}