热心网友
回答时间:2025-01-16 01:27
#include <stdio.h>
#include "conio.h" /*调用getch函数*/
#include <stdlib.h>
void hlzz() /*3行4列矩阵的行列转置函数*/
{ int i,j,a[3][4],b[4][3];
printf("请输入12个整数:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("转置前的矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
for(j=0;j<4;j++)
b[j][i]=a[i][j];
printf("转置后的矩阵:\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%4d",a[j][i]);
printf("\n");
} }
void hldjh() /*求3x3行列式对各角线的和*/
{ int i,j,S1=0,S2=0,S,a[3][3];
printf("请输入9个整数:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("转置前的矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%4d",a[i][j]);
printf("\n");
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j)
S1=S1+a[i][j];
if(i+j==2)
S2=S2+a[i][j];
}
S=S1+S2;
printf("主对角线和 S1 = %d\n",S1);
printf("副对角线和 S2 = %d\n",S2);
printf("两对角线和 S = S1 + S2 = %d + %d = %d\n",S1,S2,S);
}
void ywpjz() /*求一维数组的平均值函数*/
{ void paixu(int x[],int n);
int a[100],n,*p,s=0;
float v;
printf("输入数字的个数n:");
scanf("%d",&n);
printf("输入%d个整数:\n",n);
for(p=a;p<a+n;p++)
scanf("%d",p);
printf("所输入的数:");
for(p=a;p<a+n;p++)
printf("%4d ",*p);
printf("\n");
p=a;
for(p=a;p<a+n;p++)
s=s+*p;
v=(float)s/n;
printf("这 %d 个数的平均值:V=%.3f\n",n,v);
}
void ywpx() /*一维数组的排序问题*/
{void paixu(int x[],int n);
int i,a[50],n,*p;
printf("输入数字的个数n:");
scanf("%d",&n);
printf("输入%d个整数:\n",n);
for(p=a;p<a+n;p++)
scanf("%d",p);
printf("输入的数排序前:");
for(p=a;p<a+n;p++)
printf("%4d ",*p);
printf("\n");
p=a;
printf("从大到小排序后:");
paixu(p,n);
for (i=0;i<n;i++)
printf("%4d ",*(p++));
printf("\n");
}
void paixu(int x[],int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (x[i]<x[j])
{t=x[i];x[i]=x[j]; x[j]=t;} }
void ywzz() /*求一维数组中的最大最小值函数*/
{int max,min,*p,*a_end,a[10],i;
printf("请任意输入十个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("所输入的数为:");
a_end=a+i;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
a_end=a+i;
max=min=*a;
for(p=a+1;p<a_end;p++)
if(*p>max) max=*p;
else if(*p<min) min=*p;
printf("数组的最大值为:%d,最小值为:%d\n",max,min);
}
void main( )
{ char ch;
abc:
system("cls"); /*清屏*/
printf(" ************数组管理系统*************\n");
printf(" 1. 行列式的转置\n");
printf(" 2. 行列式对角线的和\n");
printf(" 3. 一维数组的平均值\n");
printf(" 4. 一维数组的排序\n");
printf(" 5. 一维数组的最值\n");
printf(" 6. 退出系统\n");
printf(" **********请输入编号选择功能**********\n");
ch=getchar();
switch(ch)
{case '1': hlzz();break;
case '2': hldjh();break;
case '3': ywpjz();break;
case '4': ywpx();break;
case '5': ywzz();break;
case '6': goto end;
}
getch();
goto abc;
end:
;
}
收起