沙猪上士
幼苗
共回答了17个问题采纳率:100% 举报
#include
#include
void enter(double **a,int *prow_a,int *pcol_a,double **b,int *prow_b,int *pcol_b);
void add(double *a,int row_a,int col_a,double *b,int row_b,int col_b);
void sub(double *a,int row_a,int col_a,double *b,int row_b,int col_b);
void multi(double *a,int row_a,int col_a,double *b,int row_b,int col_b);
void trans(double *a,int row_a,int col_a);
void dete(double *a,int row_a,int col_a);
int main()
{
double *a=NULL,*b=NULL;
int row_a,col_a,row_b,col_b,choice,flag=1;
while(flag)
{
printf(
"1 - Enter matrices A & Bn"
"2 - Add matricesn"
"3 - Substract matricesn"
"4 - Multiply matricesn"
"5 - Transpose of An"
"6 - Determinant of An"
"7 - Quit programn"
);
printf("Option:");
fflush(stdin);
scanf("%d",&choice);
switch(choice)
{
case 1:{enter(&a,&row_a,&col_a,&b,&row_b,&col_b);break;}
case 2:{add(a,row_a,col_a,b,row_b,col_b);break;}
case 3:{sub(a,row_a,col_a,b,row_b,col_b);break;}
case 4:{multi(a,row_a,col_a,b,row_b,col_b);break;}
case 5:{trans(a,row_a,col_a);break;}
case 6:{dete(a,row_a,col_a);break;}
case 7:{free(a);free(b);a=NULL;b=NULL;flag=0;break;}
default:break;
}
}
return 0;
}
void enter(double **a,int *prow_a,int *pcol_a,double **b,int *prow_b,int *pcol_b)
{
int i;
if(*a)
{
free(*a);
*a=NULL;
}
if(*b)
{
free(*b);
*b=NULL;
}
printf("Number of rows in A:");
scanf("%d",prow_a);
printf("Number of columns in A:");
scanf("%d",pcol_a);
if(*prow_a>0&&*pcol_a>0)
{
*a=(double *)malloc(sizeof(double)*(*prow_a)*(*pcol_a));
printf("Enter matrix data:n");
for(i=0;i0&&*pcol_b>0)
{
*b=(double *)malloc(sizeof(double)*(*prow_b)*(*pcol_b));
printf("Enter matrix data:n");
for(i=0;i
1年前
3