久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

C課程設計矩陣的加減乘混合運算

時間:2019-05-12 02:06:55下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《C課程設計矩陣的加減乘混合運算》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《C課程設計矩陣的加減乘混合運算》。

第一篇:C課程設計矩陣的加減乘混合運算

矩陣混合運算

指導教師:

浙江理工大學

班級:

學號:

姓名:

矩陣混合運算 目 錄

一、程序要求

二、輸入輸出范例

三、程序結構分析及關鍵函數說明

四、程序代碼與說明

五、運行結果與分析

六、設計日志及心得體會

一、程序要求及范例

·定義矩陣(維數小于5×5)的加減法和乘法 ·計算輸入的若干矩陣的加減法運算和乘法混合運算

·矩陣數目不定,混合運算順序不定,矩陣數值不定,均有鍵盤輸入控制

·若輸入有錯,可以隨時更改任一矩陣數值

·當輸入矩陣不能滿足矩陣運算時,提示矩陣維數錯誤

二、輸入輸出范例

·輸入:

-首先輸入每個矩陣的數值,輸入矩陣格式如[1 1 1;2 2 2]-輸入幾個矩陣的混合運算 ·輸出:

-輸出計算結果

·輸入范例: A=[1 1 1;2 2 2] B=[1 0;0 1;1 1] C=[1 0;0 1] D=C+A*B或者D=A*B+C ·輸出b->data[i][j];

}

}

return 1;

} }

3.乘運算函數

該程序設計的核心問題是矩陣的乘法運算的邏輯性的編寫,在進行矩陣相乘前要判斷兩矩陣是否能夠相乘,即判斷內積是否相等,如果能就按照矩陣的相乘方式進行運算,若不能則提示錯誤并返回,具體的程序段如下:

int multiplyMatrix(Matrix *c, Matrix *a, Matrix *b){

int i, j, k;

if(a->cols!= b->rows){ printf(“矩陣維數輸入錯誤!”);

return 0;

}

else

{

c->rows = a->rows;

c->cols = b->cols;

for(i = 0;i < c->rows;i++)

{

for(j = 0;j < c->cols;j++)

{

c->data[i][j] = 0;

for(k = 0;k < a->cols;k++)

{

c->data[i][j] += a->data[i][k]*b->data[k][j];

}

}

}

return 1;

} }

四、程序代碼與說明

#include #include #include #include #define MAX_DIM 6 #define MAX_CHAR 128 typedef struct //結構體定義矩陣 { float data[MAX_DIM][MAX_DIM];//二維數組表示矩陣 int rows;//行 int cols;//列 } Matrix;typedef struct _ListNode //定義一個頭結點 { char name[MAX_CHAR];Matrix *mat;struct _ListNode *next;//指向下一個結點 } ListNode;

typedef struct { ListNode *head;//定義一個指向頭結點的指針 } MList;enum TYPE {OP, MAT};//枚舉類型

typedef struct _Token //定義Token標識符 判斷表達式 { union //聯合體 取值為 op 和 mat中結構最大的值 { char op;Matrix *mat;};enum TYPE type;//聯合體的類型 } Token;typedef struct _Stack //定義棧 { Token **arr;//用數組存儲標識符 int n;//數組里標識符的個數 int cap;//數組的大小 } Stack;

Stack* initStack(int cap);//初始化,定義一個空棧 void freeStack(Stack *pStack);//釋放棧的空間

void reszieStack(Stack *pStack, int newCap);//重定義棧的大小 void push(Stack *pStack, Token *pToken);//入棧操作 Token* pop(Stack *pStack);//出棧 Token* top(Stack *pStack);//棧頂

int getIndex(char ch);//不同標識符對應不同的操作 char priorMap[9][9] = { {'>', '>', '<', '<', '<', '<', '<', '>', '>'}, {'>', '>', '<', '<', '<', '<', '<', '>', '>'}, {'>', '>', '>', '>', '<', '<', '<', '>', '>'}, {'>', '>', '>', '>', '<', '<', '<', '>', '>'}, {'>', '>', '>', '>', '>', '>', '<', '>', '>'}, {'>', '>', '>', '>', '>', '>', '<', '>', '>'}, {'<', '<', '<', '<', '<', '<', '<', '=', '$'}, {'>', '>', '>', '>', '>', '>', '&', '>', '>'}, {'<', '<', '<', '<', '<', '<', '<', '&', '='} };Matrix *newMatrix(int rows, int cols);//函數原型,創建新矩陣 void freeMatrix(Matrix *mat);//銷毀矩陣,釋放內存

int addMatrix(Matrix *c, Matrix *a, Matrix *b);//矩陣的加法

int subtractMatrix(Matrix *c, Matrix *a, Matrix *b);//矩陣的減法 int multiplyMatrix(Matrix *c, Matrix *a, Matrix *b);//矩陣的乘法 void printMatrix(Matrix *mat);//輸出結果 ListNode *newNode(char name[], Matrix *mat);MList *newMList();void freeNode(ListNode *node);void freeMList(MList *ml);void addNode(MList *ml, ListNode *node);ListNode *parseMat(char line[]);void printLNode(ListNode *node);Matrix *findByName(MList *ml, char name[]);int main(){ printf(“矩陣的混合運算n”);

2]n“);

char line[MAX_CHAR];char name[MAX_CHAR];char *pch;MList *ml = newMList();Matrix *newMat = NULL;

printf(”矩陣范例A=[1 1 1;2 2 printf(“請按范例格式輸入n”);

while(1){ fgets(line, MAX_CHAR, stdin);//輸入一串字符 if(strlen(line)== 1 && line[0] == 'n'){ continue;} pch = strchr(line, '[');if(pch!= NULL){ ListNode *node = parseMat(line);addNode(ml, node);} else { pch = strchr(line, '=');*pch = '

主站蜘蛛池模板: 亚洲无码在线播放| 国产一区二区不卡在线看| 国产99久久亚洲综合精品西瓜tv| 中文字幕人成无码人妻综合社区| av无码久久久久不卡免费网站| 男人的天堂无码动漫av| 欧美精品一区二区性色a+v| 18禁网站在线| 日韩精品一区二区av在线| 欧美中文字幕无线码视频| 97超碰人人爱香蕉精品| 国产三级在线观看完整版| av永久免费网站在线观看| 天堂网www在线资源中文| 亚欧乱色熟女一区二区| 四虎一区二区成人免费影院网址| 亚洲人成在线影院| 中文字幕一精品亚洲无线一区| 女人被做到高潮免费视频| 国产精品久久久久久久影院| 国产精品成人va在线观看| 精品国产迷系列在线观看| 欧美xxxxx精品| 狠狠综合久久综合88亚洲| 国产精品毛片va一区二区三区| 中国凸偷窥xxxx自由视频妇科| 一本大道熟女人妻中文字幕在线| 欧美日韩在线视频一区| 精品国产福利在线视频| 国产精品天堂avav在线| av无码东京热亚洲男人的天堂| 久久精品卫校国产小美女| 无码中文字幕人妻在线一区| 伊人色综合视频一区二区三区| 韩国无码无遮挡在线观看| 亚洲国产精品sss在线观看av| 国产精品午夜福利麻豆| 国产精品久久久久电影网| 亚洲日韩av无码中文字幕美国| 精选国产av精选一区二区三区| 国产又黄又爽又色的免费视频|