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

四乘四矩陣c語言

發布時間: 2022-08-06 04:52:15

1. c語言 急!實現4*4階矩陣的

(-1)3.若n階方陣A=(aij),則A相應的行列式D記作D=|A|=detA=det(aij)。

若矩陣A相應的行列式D=0,稱A為奇異矩陣,否則稱為非奇異矩陣,標號集:序列1,2,...,n中任取k個元素i1,i2,...,ik滿足1≤i1<i2<...<ik≤n(1)

i1,i2,...,ik構成{1,2,...,n}的一個具有k個元素的子列,{1,2,...,n}的具有k個元素的滿足(1)的子列的全體記作C(n,k),顯然C(n,k)個子列。

因此C(n,k)是一個具有個元素的標號集(參見第二十一章,1,二),C(n,k)的元素記作σ,τ,...,σ∈C(n,k)表示。

σ={i1,i2,...,ik}是{1,2,...,n}的滿足(1)的一個子列.若令τ={j1,j2,...,jk}∈C(n,k),則σ=τ表示i1=j1,i2=j2,...,ik=jk。


(1)四乘四矩陣c語言擴展閱讀:

①行列式A中某行(或列)用同一數k乘,其結果等於kA。

②行列式A等於其轉置行列式AT(AT的第i行為A的第i列)。

③若n階行列式|αij|中某行(或列);行列式則|αij|是兩個行列式的和,這兩個行列式的第i行(或列),一個是b1,b2,…,bn;另一個是с1,с2,…,сn;其餘各行(或列)上的元與|αij|的完全一樣。

④行列式A中兩行(或列)互換,其結果等於-A。

⑤把行列式A的某行(或列)中各元同乘一數後加到另一行(或列)中各對應元上,結果仍然是A。

2. C語言 輸入一個4*4矩陣,編寫兩個函數分別實現對二維數組元素的行與行進行交換,以及列與列進行交換

#include<stdio.h>
voidprintfNum(int(*)[4]);//列印矩陣
voidch(int(*nums)[4],intl1,intl2);//指定的兩行交換數據
voidcl(int(*nums)[4],intl1,intl2);//指定的兩列交換數據

intmain()
{
intnums[4][4],i,j,h1,h2,l1,l2,(*p)[4];
for(i=0;i<4;i++)
{
printf(" 輸入4*4矩陣的第%d行的4個數:",i+1);
for(j=0;j<4;j++)
{
scanf("%d",&nums[i][j]);
}
}
p=nums;
printf(" 輸入矩陣為: ");
printfNum(p);

printf(" 輸入要交換的行數(比如12表示第一行和第二行)");
scanf("%d%d",&h1,&h2);
ch(p,h1,h2);
printf(" 矩陣第%d行和第%d行交換以後為: ",h1,h2);
printfNum(p);

printf(" 輸入要交換的列數(比如12表示第一列和第二列)");
scanf("%d%d",&l1,&l2);
cl(p,l1,l2);
printf(" 矩陣第%d列和第%d列交換以後為: ",l1,l2);
printfNum(p);

}

voidprintfNum(int(*nums)[4])//列印矩陣
{
inti,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%d",nums[i][j]);
}
printf(" ");
}
}

voidch(int(*nums)[4],intl1,intl2)//指定的兩行交換數據
{
inti,save;
for(i=0;i<4;i++)
{
save=nums[l1-1][i];
nums[l1-1][i]=nums[l2-1][i];
nums[l2-1][i]=save;
}
}
voidcl(int(*nums)[4],intl1,intl2)//指定的兩列交換數據
{
inti,save;
for(i=0;i<4;i++)
{
save=nums[i][l1-1];
nums[i][l1-1]=nums[i][l2-1];
nums[i][l2-1]=save;
}
}

3. c語言求4乘4矩陣對角線乘積

#include <stdio.h>

int main() {
int a[4][4],i,j,msum = 0,ssum = 0;
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
printf("矩陣元素表:\n");
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i = 0; i < 4; ++i) {
msum += a[i][i];
ssum += a[i][3 - i];
}
printf("主對角線的和是:%d\n斜對角線的和是:%d\n\n",msum,ssum);
return 0;
}

4. 從鍵盤輸入一個4*4矩陣,並求這個4*4矩陣主對角線元素之和,並輸出.球C語言編程

# include <stdio.h>

int main(void)

{

int a[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

int i, j, sum1, sum2;//定義sum1,sum2,分別存放兩條對線元素的和;

sum1=sum2=0;

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

{

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

printf("%-5d", a[i][j]);// 輸出該數組矩陣;

printf(" ");

}

printf(" 第一條對角線的元素值分別為: ");

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

{

printf("a[%d][%d]=%-3d", i, i, a[i][i]);//列印第一條對角線的元素及其值;

sum1 += a[i][i]; //求出第一條對角線的元素和;

}

printf(" 其元素的和值為:%d ", sum1);

printf(" 第二條對角線的元素值分別為: ");

j = 3;//第二條對角線元素為a[0][3]、a[1][2]、a[2][1]、a[3][0],用j的值約束列的值;

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

{

printf("a[%d][%d]=%-3d", i, i+j, a[i][i+j]);//列印第二條對角線的元素及其值;

sum2 += a[i][i+j]; //求出第二條對角線的元素和;

j-=2; //第二條對角線元素列的值每次-1,但是行的值每次+1,所以j的值每次-2;

}

printf(" 其元素的和值為:%d ", sum2);

printf(" 兩條對角線元素的和值為:%d ", sum1+sum2);

return 0;

}

運行結果:

(4)四乘四矩陣c語言擴展閱讀:

printf()用法:

1、printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。

格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。

要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。

簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。

2、printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。

printf()函數的調用格式為:printf("&lt;格式化字元串&gt;",&lt;參量表&gt;)。

其中格式化字元串用於指定輸出格式。格式控制串可由格式字元串和非格式字元串兩種組成。

5. c語言 求4*4矩陣主對角線元素之和,副對角線元素之和

【輸入】

輸入一個4×4的整數矩陣。

分4行,每行4個整數,整數之間以空格間隔。

【輸出】

分行輸出矩陣的外圍元素之和,主對角線元素之和以及副對角線元素之和。

【輸入示例】

1 2 4 5

6 7 8 9

0 1 2 3

4 5 6 7

【輸出示例】

52

17

18

6. c語言 從鍵盤輸入一個4*4整數矩陣

#define N 4
void main()
{
int a[N][N];
int i,j,max,p,q;
printf("輸入4*4矩陣:\n");
for(i=0;i<N;i++)
for (j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("輸入的矩陣為:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
max=a[1][0];
p=1;q=0;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
if(a[i][j]>max)
{
max=a[i][j];
p=i;q=j;
}
a[q][p]=max;
printf("處理以後的矩陣為:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
}

7. C語言定義一個4×4整型矩陣,並完成數據的初始化,輸入一個數輸出行列,如果沒有,則提示錯誤

#include"stdafx.h"
#include<conio.h>
#include<stdlib.h>
#include<time.h>

#defineN4

int_tmain(intargc,_TCHAR*argv[])
{
intarray[N][N]={0};

intn,flag=0;

srand(time(NULL));

for(inti=0;i<N;i++)
{
for(intj=0;j<N;j++)
{
array[i][j]=rand()%16+1;
}
}

scanf("%d",&n);

for(inti=0;i<N;i++)
{
for(intj=0;j<N;j++)
{
if(n==array[i][j])
{
printf("%d行%d列 ",i+1,j+1);
flag=1;
}
}
}

if(flag==0)
{
printf("矩陣中不存在該數 ");
}

getch();
return0;
}

8. C語言4X4矩陣相乘問題!

#include <stdio.h>

void main()

{

int a[4][4],b[4][4],c[4][4];

int i,j,k;int s[4][4]={0};

printf("請輸入矩陣A: ");

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

{

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

{

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

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

}

}

printf(" ");

printf("請輸入矩陣B: ");

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

{

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

{

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

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

}

}

printf("矩陣A: ");

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

{

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

{

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

if(j==3)

printf(" ");

}

}

printf(" ");

printf("矩陣B: ");

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

{

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

{

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

if(j==3)

printf(" ");

}

}

printf(" ");

printf("矩陣C=A*B: ");

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

{

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

{

for(k=0;k<4;k++)

{

s[i][j]+=a[i][k]*b[k][j];

}

c[i][j]=s[i][j];

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

if(j==3)

printf(" ");

}

}


}

9. C語言:從鍵盤輸入一個4*4的矩陣,求行下標為2或者列下標為3的元素之和。怎麼寫

代碼文本:

#include "stdio.h"

int main(int argc,char *argv[]){

int a[4][4],i,j,k;

printf("Please enter data(int 0~99)... ");

for(k=i=0;i<4;i++)//輸入矩陣

for(j=0;j<4;scanf("%2d",a[i]+j++));

putchar(' ');

for(k=i=0;i<4;i++){//輸出矩陣並按要求求和

for(j=0;j<4;printf("%3d",a[i][j++]))

if(i==2 || j==3)

k+=a[i][j];

putchar(' ');

}

printf(" The SUM is %d ",k);

return 0;

}

10. C語言編程求出4×4矩陣中每行的最大值,輸出最大值及位置,並輸出他們的和。

#include<stdio.h>
intmain()
{
intnum[4][4],*p=&num[0][0],*pSave,max[4]={0,0,0,0},sum=0,i=0;
printf("輸入矩陣16個數字: ");
while(p<=&num[3][3])//輸入矩陣數字
{
scanf("%d",p++);
}
p=&num[0][0];
while(1)//總循環
{
while(p<=&num[i][3])//子循環:統計一行
{
if(*p>max[i])
{
max[i]=*p;
pSave=p;
}
p++;
}
sum=sum+max[i];
i++;
printf("第%d行最大值是第%d個元素值為%d ",i,pSave-&num[i-1][0]+1,max[i-1]);
if(p>&num[3][3])
break;
}
printf("總和為%d ",sum);
return0;
}