當前位置:首頁 » 編程語言 » c語言33矩陣轉置

c語言33矩陣轉置

發布時間: 2022-08-22 10:38:10

㈠ C++題目: 寫一個函數將一個3*3的整型矩陣轉置。

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

㈡ 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;

}

}

}



(2)c語言33矩陣轉置擴展閱讀:

用函數

#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;

}

}

}

㈢ c語言:寫一個函數,將輸入的3*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;

}

}

}

(3)c語言33矩陣轉置擴展閱讀:

在C語言或C++中,會把用來#include的文件的擴展名叫 .h,稱其為頭文件。

#include文件的目的就是把多個編譯單元(也就是c或者cpp文件)公用的內容,單獨放在一個文件里減少整體代碼尺寸;或者提供跨工程公共代碼。在現行的c++版本中,應用這個頭文件應是#include<stdio.h>

stdio 就是指 「standard input & output"(標准輸入輸出)所以,源代碼中如用到標准輸入輸出函數時,就要包含這個頭文件!

例如c語言中的 printf("%d",i); scanf("%d",&i);等函數。

引用方法

#include <stdio.h>

(註:在TC2.0中,允許不引用此頭文件而直接調用其中的函數,但這種做法是不標準的。也不建議這樣做。以避免出現在其他IDE中無法編譯或執行的問題。)

標准函數

int getchar()//從標准輸入設備寫入一個字元

int putchar()//向標准輸出設備讀出一個字元

int scanf(char*format[,argument…])//從標准輸入設備讀入格式化後的數據

int printf(char*format[,argument…])//向標准輸出設備輸出格式化字元串

char* gets(char*string)//從標准輸入設備讀入一個字元串

int puts(char*string)//向標准輸出設備輸出一個字元串

int sprintf(char*string,char*format[,…])//把格式化的數據寫入某個字元串緩沖區。

㈣ 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;

}

熱點內容
安卓系統的用戶管理在哪裡 發布:2024-05-04 23:12:27 瀏覽:429
我的世界伺服器推薦電腦版免費 發布:2024-05-04 23:04:46 瀏覽:394
c程序如何編譯 發布:2024-05-04 22:58:05 瀏覽:931
蘋果手機怎麼查看id密碼 發布:2024-05-04 22:54:49 瀏覽:657
家有三相電如何配置音響設備 發布:2024-05-04 22:53:42 瀏覽:55
三星存儲器已幾乎滿 發布:2024-05-04 22:47:38 瀏覽:736
mf90pos機密碼是什麼 發布:2024-05-04 22:24:04 瀏覽:750
編譯預處理和函數區別 發布:2024-05-04 22:16:49 瀏覽:431
java復選框 發布:2024-05-04 22:13:24 瀏覽:529
安卓怎麼玩頁游 發布:2024-05-04 22:03:17 瀏覽:142