#includestdio.h
#includestdlib.h
void memory(int **p,int m,int n); //分配的内存的函数;
void readdata(int**p,int m,int n);
void plus(int **u,int **i,int m,int n); //求和函数,要求两个矩阵同型
void redu(int **u,int **i,int m,int n); //求差,要求两个矩阵同型
void mult(int **u,int **i,int m,int n); //矩阵的积;乘法要求前一个矩阵的行数等于后一个矩阵的列数;
void release(int **p,int m,int n); //释放内存的函数;
int main() //也可使用switch语句来选择求和求差求积
{
int m,n;
scanf("%d%d",m,n); //输入m,n两个数,确定矩阵要分配内存的大小
int **k,**q,**o;
memory(**k,m,n);
memory(**q,m,n);
memory(**o,m,n); //备用,用来存放结果的一块内存;
readdata(**k,m,n);
readdata(**q,m,n);
plus(**k,**q,m,n);
redu(**k,**q,m,n);
mult(**k,**q,m,n); //在本行加//则可不求矩阵乘法,使程序适用于一切m*n的矩阵加法;
realease(**k,m,n);
realease(**q,m,n);
}
void memory(int **p,int m,int n)
p=*(int**)malloc(m*sizeof(int*);
for(i=0;in;i◆◆)
p[i]=*(int*)malloc(n*sizeof(int));
void release(int **p,int m,int n)
free(p[i]);
p[i]=0;
free(p);
p=0;
void readdata(int **p,int m,int n)
int i,j;
for(i=0;im;i◆◆)
for(j=0;jn;j◆◆)
scanf("%d",p[i][j]); //要求用户由行到列输入矩阵的数据;
void plus(int **u,int **i,int m,int n)
int r,j;
for(r=0;rm;r◆◆)
printf("\n");
void redu(int **u,int **i,int m,int n)
void mult(int **u,int **i,int m,int n)
int r,j,k,d=0;
for(k=0;km;k◆◆) //这里分号错写成了逗号
d=d◆u[r][k]*i[k][r];
printf("%d",d);
d=0;
#include?stdio.h
#include?ctype.h
#define?MAX_STR_LEN?100
int?strToInt(char?s[],int?base)?{
int?i?=?0,result?=?0,sign?=?1;
if(s[i]?==?'◆')?{?sign?=?1;?◆◆i;?}
else?if(s[i]?==?'-')?{?sign?=?-1;?◆◆i;?}
if(base?10)?{?//?数基在10以上时
while(s[i])?{
if(islower(s[i]))?result?=?base?*?result?◆?s[i]?-?'a'?◆?10;
else?if(isupper(s[i]))?result?=?base?*?result?◆?s[i]?-?'A'?◆?10;
else?if(isdigit(s[i]))?result?=?base?*?result?◆?s[i]?-?'0';
◆◆i;
else?{?//?数基为?0?--?10?时
if(isdigit(s[i])?(s[i]?-?'0'?base))
result?=?base?*?result?◆?s[i]?-?'0';
return?sign?*?result;
int?main()?{
int?base;?
char?s[MAX_STR_LEN];?
while(?(scanf("%d:",?base)?!=?EOF)?(gets(s)?!=?NULL)?)
printf("%d\n",?strToInt(s,?base));?
return?0;?
void?main()
scanf("%d",a[i][j]);
scanf("%d",a[k][t]);*///----此处覆盖掉了矩阵1;
printf("矩阵【1】\n");
printf("%d?",a[i][j]);
scanf("%d",b);
//----------楼主此处以下的四个for一一嵌套算出来的结果没什么意义.
if(b==1)
printf("相加:\n");
printf("%d\t",a[i][j]);
printf("\n");}
printf("相乘:\n");
复制后可直接编译运行,结果如下:格式可自行修改.
#include "stdafx.h" //这是个什么东东
#include stdio.h
int main(int argc, char* argv[])
c[i][j]=(a[i][j]◆b[i][j]);
printf("矩阵A与B相加如下所示:\n");
return 0;
c[i][j]=a[i][j]◆b[i][j];
两矩阵相乘,
c[i][j]◆=a[i][k]*b[k][j];