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