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("<格式化字元串>",<參量表>)。
其中格式化字元串用於指定輸出格式。格式控制串可由格式字元串和非格式字元串兩種組成。
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;
}