當前位置:首頁 » 編程語言 » 3x3矩陣c語言

3x3矩陣c語言

發布時間: 2022-09-14 06:50:08

『壹』 將一個3x3的矩陣轉置,怎樣用c語言

#include<stdio.h>

int main()

{

int a[3][3];int*i;

for(i=*a;i<*a+9;scanf("%d",i++));//輸入矩陣

void trans(int(*p)[3]);//聲明轉換函數

trans(a);

}

void trans(int(*p)[3])

{

int i,j,t,*k;

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

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

{

t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;//行列交換

}

for(i=0;i<3;i++,printf(" "))

for(k=*(p+i);k<*(p+i)+3;printf("%2d",*k++));//輸出轉置矩陣

}

(1)3x3矩陣c語言擴展閱讀:

C#中for語句的語法:

for(initialization;Boolean expression;update control variable)

statement

其中,statement(語句)是for循環主體,要麼是一個語句,要麼是用大括弧{}封閉的代碼塊。[3]

例子1:

static void Main(string[]args)

{

for(int i=0;i<10;i++)

{

Console.WriteLine(i);

Console.ReadLine();

}

}

例子2:

static void Main(string[]args)

{

int i=0;

for(;i<10;i++)

{

Console.WriteLine(i);

Console.ReadLine();

}

}

例子2運算得到例子1相同的結果。

Pascal語言中的for循環

循環次數已知時,可以用for語句實現循環結構。

for語句有兩種格式:遞增型和遞減型。

(1)遞增型for語句格式

for<循環變數>:=<初值>to<終值>do<語句>;

(2)遞減型for語句格式,

for<循環變數>:=<初值>downto<終值>do<語句>;

其中,「循環變數"為一個有序類型的數據,

在第一種形式中,使用的是保留字to,循環變數則從「初值"開始逐一增加到「終值";

在第二種形式中,使用的是保留字downto,「循環變數"則從「初值"開始逐一遞減到「終值",每次執行一次循環體語句。

『貳』 c語言 任意輸入一個3×3的矩陣,用函數實現求上三角矩陣並輸出。

第一題#include <stdio.h>
void shangsan(int (*p)[3])
{
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(i==1&&j==0)
printf("%c",32);
else if(i==2&&(j==0||j==1))
printf("%c",32);
else
printf("%d",(*(p+i))[j]); }
printf("\n");
} }
void main()
{ int s[3][3];
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
scanf("%d",&s[i][j]);
shangsan(s);}第二題#include <stdio.h>
int mystrcmp(char *p1,char *p2)
{ for(int i=0;i<15;i++,p1++,p2++)
{ if(*p1!=*p2)
return *p1-*p2;
}
return 0;
}
void main()
{
int M;
char s1[15],s2[15];
gets(s1);
gets(s2);
M=mystrcmp(s1,s2);
if(M==0)
printf("字元串相等!");
else
printf("字元串不相等!差值是:%d",M); }第三題#include <stdio.h>
float HH(float score[])
{ float Max=0,Min=32767,sum=0;
for(int i=0;i<10;i++)
{
sum+=score[i];
if(score[i]>Max)
Max=score[i];
else if(Min>score[i])
Min=score[i];
}
score[0]=Max;
score[1]=Min;
return sum/10;}
void main()
{ float shuzu[10];
for(int i=0;i<10;i++)
scanf("%f",&shuzu[i]);
printf("平均分是:%f\n最高分數是:%f\n最低分數是:%f\n",HH(shuzu),shuzu[0],shuzu[1]);
}

『叄』 用C語言編程求一個3x3矩陣的第一行所有元素的積

假設一個整數矩陣a[3][3]已經賦值。以下是用C語言編程求一個3x3矩陣的第一行所有元素的積的代碼段:
int i,y=1;
for(i=0;i<3;i++)
y*=a[0][i];
printf("第一行所有元素的乘積=%d\n",y);

『肆』 C語言,求3×3矩陣的轉置矩陣(在自身進行轉置)

#include<stdio.h>

int main()

{

int a1,b1;

int a[3][3];

int i,j;

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

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

scanf("%d",&a[i][j]);

printf("矩陣為 ");

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

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

{

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

if(j==2)

printf(" ");

}

printf(" ");

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

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

{

a1=a[i][j];

b1=a[j][i];

a[i][j]=b1;

a[j][i]=a1;

}

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

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

{

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


if(j==2)

printf(" ");

}

return 0;

}

『伍』 如何用C語言輸出3*3的矩陣

#include<stdio.h>

#define N 3

void fun(int a[][N],int m)

{

int i, j;

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

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

a[j][i] = a[j][i] * m;

}

int main()

{

int i, j;

int a[N][N];

printf("input a number: ");

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

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

scanf_s("%d", &a[i][j]);

printf("3 * 3 matrix: ");

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

{

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

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

printf(" ");

}

printf("change 3 * 3 matrix: ");

fun(a, 2);

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

{

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

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

printf(" ");

}


return 0;

}

『陸』 c語言編程 輸入一個3*3的矩陣,列印該矩陣,並輸出該矩陣的對角元素

#include<stdio.h>

#defineM3
#defineN3

voidCreate_matrix(intmatrix[M][N],intm,intn){
inti,j;
printf("開始輸入矩陣內容(%d行%d列) ",m,n);
for(i=0;i<m;i++){
printf("輸入第%d行的%d個元素:",i+1,n);
for(j=0;j<n;j++)
scanf("%d",&matrix[i][j]);
}
}

voidPrint_matrix(intmatrix[M][N],intm,intn){
inti,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
printf("%d ",matrix[i][j]);
printf(" ");
}
}

voidPrint_matrix_diagonal(intmatrix[M][N],intm,intn){
inti,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
if(i==j||i+j==M-1)
printf("%d ",matrix[i][j]);
else
printf(" ");
printf(" ");
}
}

intmain(void){
intmatrix[M][N];
Create_matrix(matrix,M,N);
printf("====================================================== ");
printf("您輸入的矩陣為: ");
Print_matrix(matrix,M,N);
printf("對角線元素為: ");
Print_matrix_diagonal(matrix,M,N);
return0;
}

執行結果

『柒』 c語言3*3矩陣運算

/*自從學線代就開始琢磨怎樣將復雜的矩陣進行編程,歷經兩個月,終於實現了這個願望。這個程序使我弄清楚了怎樣使用二級指針實現動態二維數組,很有研究價值!希望能給各位學編程的gg&mm帶來一些啟發,去研究更高級的問題。*/

#include <iostream.h>
void zhuan()
{
int a,b;
double **x,**p;
cout<<"輸入矩陣的行數,列數:";
cin>>a>>b;

x=new double *[a];
for(int i=0;i<a;i++)
x[i]=new double[b];
cout<<"輸入數據:\n";
for(i=0;i<a;i++)
for(int j=0;j<b;j++)
cin>>x[i][j];
//////////////////////開始轉置:
p=new double *[b];
for(i=0;i<b;i++)
p[i]=new double[a];

for(i=0;i<b;i++)
for(int j=0;j<a;j++)

//////////////////////////////輸出轉置矩陣
for(i=0;i<b;i++)
{for(int j=0;j<a;j++)
cout<<p[i][j]<<'\t';
cout<<endl;
}
for(i=0;i<a;i++)

delete x;
delete p;
p=0;
x=0;

}
void jia()
{
int a1,b1,a2,b2;
double **x1,**x2;
cout<<"輸入第一個行數,列數:";
cin>>a1>>b1;
cout<<"輸入第二個行數,列數:";
cin>>a2>>b2;
if(a1!=a2 ||b1 !=b2)
////x1[][]
x1=new double *[a1];
for(int i=0;i<a1;i++)
x1[i]=new double[b1];
cout<<"輸入第一個矩陣:\n";
for(i=0;i<a1;i++)
for(int j=0;j<b1;j++)
cin>>x1[i][j];
//////x2[][]
x2=new double *[a2];
for(i=0;i<a2;i++)
x2[i]=new double[b2];
cout<<"輸入第二個矩陣:\n";
for(i=0;i<a2;i++)
for(int j=0;j<b2;j++)
cin>>x2[i][j];
cout<<"相加後:"<<endl;
for(i=0;i<a1;i++)
{
for(int j=0;j<b1;j++)
{
x1[i][j]+=x2[i][j];
cout<<x1[i][j]<<"\t";
}
cout<<endl;
}
for(i=0;i<a1;i++)

delete x1;x1=0;
delete x2;x2=0;
}
void jian()
{
int a1,b1,a2,b2;
double **x1,**x2;
cout<<"輸入第一個行數,列數:";
cin>>a1>>b1;
cout<<"輸入第二個行數,列數:";
cin>>a2>>b2;
if(a1!=a2 ||b1 !=b2)
////x1[][]
x1=new double *[a1];
for(int i=0;i<a1;i++)
x1[i]=new double[b1];
cout<<"輸入第一個矩陣:\n";
for(i=0;i<a1;i++)
for(int j=0;j<b1;j++)
cin>>x1[i][j];
//////x2[][]
x2=new double *[a2];
for(i=0;i<a2;i++)
x2[i]=new double[b2];
cout<<"輸入第二個矩陣:\n";
for(i=0;i<a2;i++)
for(int j=0;j<b2;j++)
cin>>x2[i][j];
cout<<"相減後:"<<endl;
for(i=0;i<a1;i++)
{
for(int j=0;j<b1;j++)
{
x1[i][j]-=x2[i][j];
cout<<x1[i][j]<<"\t";
}
cout<<endl;
}
for(i=0;i<a1;i++)

delete x1;x1=0;
delete x2;x2=0;
}
void cheng()
{
int a1,b1,a2,b2;
double **x1,**x2;
cout<<"輸入第一個行數,列數:";
cin>>a1>>b1;
cout<<"輸入第二個行數,列數:";
cin>>a2>>b2;
if(b1!=a2)
////x1[][]
x1=new double *[a1];
for(int i=0;i<a1;i++)
x1[i]=new double[b1];
cout<<"輸入第一個矩陣:\n";
for(i=0;i<a1;i++)
for(int j=0;j<b1;j++)
cin>>x1[i][j];
//////x2[][]
x2=new double *[a2];
for(i=0;i<a2;i++)
x2[i]=new double[b2];
cout<<"輸入第二個矩陣:\n";
for(i=0;i<a2;i++)
for(int j=0;j<b2;j++)
cin>>x2[i][j];
cout<<"相乘後:"<<endl;
double **r=new double *[a1];
for(i=0;i<a1;i++)
r[i]=new double[b2];
////乘開始:
for(int q=0;q<a1;q++)
for(int w=0;w<b2;w++)
{
r[q][w]=0;
for(int j=0;j<b1;j++)
r[q][w]+=x1[q][j]*x2[j][w];
}
//輸出
for( q=0;q<a1;q++)
{
for(int w=0;w<b2;w++)
{
cout<<r[q][w]<<"\t";
}
cout<<endl;
}
for(i=0;i<a1;i++)

for(i=0;i<a2;i++)
delete []x2[i];
delete x1;x1=0;
delete x2;x2=0;
delete r;r=0;

}
int main()
{
int c=1;
while(c)
{
cout<<"*********************************************************\n";
cout<<"\t(1)轉置\n\t(2)矩陣加法\n\t(3)矩陣減法\n\t(4)矩陣乘法\n\t(0)退出"<<endl;
cout<<"*********************************************************\n";
cin>>c;
switch(c)
{
case 0:break;
case 1:zhuan();break;
case 2:jia();break;
case 3:jian();break;

case 4:cheng();break;
default:cout<<"Please retry!"<<endl;
}
}
return 0;
}

『捌』 C語言編程:求3*3矩陣的轉置矩陣

思路:定了兩個二維數組分別存儲轉置前後的矩陣,接著for循環依次轉置即可。
//參考代碼
#include<stdio.h>
int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},b[3][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%2d ",b[i][j]);
printf("\n");
}
return 0;
}
/*
運行結果:
1 4 7
2 5 8
3 6 9
*/

『玖』 C語言 :求一個3*3的整形矩陣對角線元素之和,請詳解一下

用C語言實現,代碼如下
#include "stdio.h"
#define M 3 //矩陣階數
void main()
{
int a[M][M],i,j,sum=0;
printf("請輸入%d*%d矩陣:\n",M,M);
for(i=0;i<M;i++)//輸入M*M階矩陣
for(j=0;j<M;j++)
{
scanf("%d",&a[i][j]);
if(i==j)sum+=a[i][j];//求主對角線的元素之和
}
printf("\n矩陣為:\n");
for(i=0;i<M;i++)//輸出矩陣
{
for(j=0;j<M;j++)
printf("%5d",a[i][j]);
printf("\n");//每個M個元素輸出一個換行符
}
printf("\n主對角線和=%d\n",sum);
}

熱點內容
手機怎樣給程序加密軟體 發布:2025-01-12 06:47:11 瀏覽:824
地平線最高畫質筆記本要什麼配置才能玩 發布:2025-01-12 06:47:10 瀏覽:369
原神過主線任務腳本 發布:2025-01-12 06:34:51 瀏覽:514
醫保電子密碼在哪裡找到 發布:2025-01-12 06:34:38 瀏覽:349
安卓手機有網卻不能使用怎麼辦 發布:2025-01-12 06:25:20 瀏覽:213
arm存儲器映射 發布:2025-01-12 06:25:12 瀏覽:250
安卓系統個人字典有什麼用 發布:2025-01-12 06:13:37 瀏覽:929
geventpython安裝 發布:2025-01-12 06:13:34 瀏覽:339
放鬆解壓助睡眠直播 發布:2025-01-12 06:13:00 瀏覽:829
車載wince和安卓哪個好用 發布:2025-01-12 05:58:18 瀏覽:840