【高分求赐教】用汇编语言实现矩阵基本运算,满足要求可再追加200分,急!

说明:编写一个小于8X8的16位二进制整数(带符号)矩阵运算程序。
具体要求:(1)操作界面:提供一个较好的矩阵输入操作界面,可以在字符显示模式下设计,操作设计可以先提供一份设计方案;(2)要求的运算:a)同型矩阵的加减操作;b)支持M*N与N*P的矩阵相乘,其中M、N、P小于8,要求计算支持小数处理过程和带一位小数的结果显示;c)矩阵的左除和右除;d)矩阵的转置;e)可以求矩阵的秩;(3)结果输出:提供一个运算结果显示界面

:(1)操作界面:提供一个较好的矩阵输入操作界面,可以在字符显示模式下设计,操作设计可以先提供一份设计方案;(2)要求的运算:a)同型矩阵的加减操作;b)支持M*N与N*P的矩阵相乘,其中M、N、P小于8,要求计算支持小数处理过程和带一位小数的结果显示;c)矩阵的左除和右除;d)矩阵的转置;e)可以求矩阵的秩;

参考资料:24

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-14
#include "stdafx.h"
#include "iostream.h"
#include "iomanip.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
typedef int Status;
typedef struct OLNode{
int i,j;
int e;
struct OLNode *right,*down;
}OLNode, *OLink;
typedef struct{
OLink *rhead,*chead;
int mu,nu,tu;
}CrossList;
Status CreateSMatrix_OL(CrossList &M){
if(M) free(M);
scanf(&m,&n,&t);
M.mu:=m; M.nu=n; M.tu=t;
if(!(M.rhead=(OLink*)malloc((m+1)*sizeof(OLink))))exit(OVERFLOW);
if(!(M.chead=(OLink*)malloc((n+1)*sizeof(OLink))))exit(OVERFLOW);
M.rhead[]=M.chead[]=NULL;
for(scanf(&i,&j,&e);i!=0;scanf(&i,&j,&e)){
if(!(p=(OLNode*)malloc(sizeof(OLNode))))exit(OVERFLOW);
p->i=i;p->j=j;p->e=e;
if(M.rhead==NULL||M.rhead->j>j) {p->right=M.rhead;M.rhead=p;}
else{
for(q=M.rhead;(q->right)&&q->right->j<j;q=q->right);
p->right=q->right;q->right=p;
}
if(M.chead[j]==NULL||M.chead[j]->i>i){p->down=M.chead[j];M.chead[j]=p;}
else{
for(q=M.chead[j];(q->down)&&q->down->i<i;q=q->down);
p->down=q->down;q->down=p;
}
}
return OK;
}
return 0;
}
在"Status CreateSMatrix_OL(CrossList &M){ "出错:"error C2601: 'CreateSMatrix_OL' : local function definitions are illegal"
我检查过了,应该不是括号的匹配问题,顺便说下,我是在VC6.0中运行的..
第2个回答  2010-12-17
楼上, 要求的是汇编啊~~本回答被网友采纳
相似回答