int main(void) { TSMatrix *a1, *a2, *result1, *result2; a1 = InitTriple(3, 3, 3); a2 = InitTriple(3, 3, 3); InputValue(a1); InputValue(a2); ShowMatrix(a1); ShowMatrix(a2); if ((result1 = AddMatrix(a1, a2)) != NULL) ShowMatrix(result1); if ((result2 = SubMatrix(a1, a2)) != NULL) ShowMatrix(result2); return 0; }
static void mdlOutputs(SimStruct *S, int_T tid) { int_T i; InputVector U1(S,IN1); OutputVector Y(S,OUT1); ParamVector G(S,GAIN); real_T U2=InputValue(S,IN2); real_T O=ParamValue(S,OFFSET); MatlabMatrix M(S,NAME); M[0][0]=M[0][0]+1.0; for (i=0; i<Y.Size(); i++) Y[i] = G[0] * U1[i]+O; WriteOutputValue(S,OUT2,U2); }
int main(void) { int select; /*保存选择变量*/ Elem e; /*保存从函数返回的结点的值*/ Elem v; /*保存传递给函数的结点的值*/ size_t i= 0; LINKSTACK S; InitStack(&S); /*初始化栈*/ srand((int)time(NULL)); while (1) /*while_@1*/ { if (!(S.pBottom)) { printf("栈不存在!\n"); break; } system("cls"); Menu(); printf("请输入您的选择(1~9):"); scanf("%d", &select); getchar(); switch (select) /*switch_@1*/ { case 1: /*入栈.*/ v = InputValue("入栈元素为:"); Push(&S, v); printf("入栈操作成功!\n"); getchar(); break; case 2: /*输出栈中元素.*/ printf("栈为:"); TraveStack(&S); getchar(); break; case 3: /*出栈.*/ if (OK == Pop(&S, &e)) { printf("出栈成功,出栈元素是%d!\n", e); } else { printf("出栈失败!\n"); } getchar(); break; case 4: /*输出栈的长度.*/ printf("栈长为: %d \n", StackLength(&S)); getchar(); break; case 5: /*清空栈.*/ ClearStack(&S); printf("该栈已经清空!\n"); getchar(); break; case 6: /*销毁栈.*/ DestroyStack(&S); printf("栈已删除!\n"); getchar(); break; case 7: /*返回栈顶结点元素.*/ if (OK == GetTop(&S, &e)) { printf("栈顶为:%d\n", e); } else { printf("不存在栈顶元素!\n"); } getchar(); break; case 8: /*判断栈是否为空.*/ if (StackEmpty(&S) == TRUE) { printf("栈为空!\n"); } else { printf("栈非空!\n"); } getchar(); break; case 9: /*进制转换*/ { int d; unsigned int m, n; v = InputValue("请输入一个非负整数:"); d = InputValue("请输入转换进制:"); if (v < 0 ||d<2 ||d>16) { printf("输入数据错误!\n"); break; } m = (unsigned int)v; n = (unsigned int)d; Conversion_ten_to_n(m, n); getchar(); break; } default: printf("请重新选择!\n"); getchar(); break; }/*switch_@1*/ } /*while_@1*/ return EXIT_SUCCESS; }
int main(void) { int select; /*保存选择变量*/ size_t pos; /*位序*/ Elem e; /*保存从函数返回的结点的值*/ Elem v; /*保存传递给函数的结点的值*/ size_t i= 0; PREAR pRear = InitList(); srand((int)time(NULL)); while (i < 10) { InsertList(&pRear, i, i); ++i; } while (1) /*while_@1*/ { if (!pRear) { printf("表不存在!\n"); break; } system("cls"); Menu(); printf("请输入您的选择(1~10):"); scanf("%d", &select); getchar(); switch (select) /*switch_@1*/ { case 1: /*插入数据*/ pos = InputPos("插入位置为:"); v = InputValue("结点元素为:"); if (FAILE == InsertList(&pRear, pos, v)) { printf("插入失败!\n"); } else { printf("插入成功!\n"); } getchar(); break; case 2: /*整表输出*/ printf("整表为:"); TraveList(pRear); getchar(); break; case 3: /*删除结点*/ pos = InputPos("删除的结点位置是:"); if (OK == DeleteList(&pRear, pos, &e)) { printf("删除成功,删除的元素是%d!\n", e); } else { printf("删除失败!\n"); } getchar(); break; case 4: /*输出表的长度*/ printf("表长为: %d \n", ListLength(pRear)); getchar(); break; case 5: /*清空表*/ ClearList(pRear); printf("该表已经清空!\n"); getchar(); break; case 6: /*判断链表是否存在特定结点*/ v =InputValue("要查找的数值为:"); printf("要查找的元素在链表的第%d位!(第0位表示不存在)\n", LocateElem(pRear, v)); getchar(); break; case 7: /*返回特定位序结点*/ pos = InputPos("获取位置为:"); if (OK == GetElem(pRear, pos, &e)) { printf("该结点为:%d\n", e); } else { printf("不存在!\n"); } getchar(); break; case 8: /*判断链表*/ if (ListEmpty(pRear) == TRUE) { printf("表为空!\n"); } else { printf("表非空!\n"); } getchar(); break; case 9: /*销毁整表*/ DestroyList(&pRear); printf("表已删除!\n"); getchar(); break; default: printf("请重新选择!\n"); getchar(); break; }/*switch_@1*/ } /*while_@1*/ return EXIT_SUCCESS; }
int main(void) { int select; /*保存选择变量*/ size_t pos; /*位序*/ Elem e; /*保存从函数返回的结点的值*/ Elem v; /*保存传递给函数的结点的值*/ int n = 1; SQLIST L; InitList(&L); srand((int)time(NULL)); while (n <= 10) { InsertList(&L, n, rand()%20); ++n; } while (1) /*while_@1*/ { if (!L.elem) { printf("表不存在!\n"); break; } system("cls"); Menu(); printf("请输入您的选择(1~10):"); scanf("%d", &select); getchar(); switch (select) /*switch_@1*/ { case 1: /*插入数据*/ pos = InputPos("插入位置为:"); e = InputValue("结点元素为:"); if (FAILE == InsertList(&L, pos, e)) { printf("插入失败!\n"); } else { printf("插入成功!\n"); } getchar(); break; case 2: /*整表输出*/ printf("整表为:"); TraveList(&L); getchar(); break; case 3: /*删除结点*/ pos = InputPos("删除的结点位置是:"); if (OK == DeleteList(&L, pos, &e)) { printf("删除成功,删除的元素是%d!\n", e); } else { printf("删除失败!\n"); } getchar(); break; case 4: /*输出表的长度*/ printf("线性表长度: %d \n", ListLength(&L)); getchar(); break; case 5: /*清空表*/ ClearList(&L); printf("该表已经清空!\n"); getchar(); break; case 6: /*判断链表是否存在特定结点*/ v =InputValue("要查找的数值为:"); printf("要查找的元素在链表的第%d位!(第0位表示不存在)\n", LocateElem(&L, v)); getchar(); break; case 7: /*返回特定位序结点*/ pos = InputPos("获取位置为:"); if (OK == GetElem(&L, pos, &e)) { printf("该结点为:%d\n", e); } else { printf("不存在!\n"); } getchar(); break; case 8: /*判断链表*/ if (ListEmpty(&L) == TRUE) { printf("表为空!\n"); } else { printf("表非空!\n"); } getchar(); break; case 9: /*销毁整表*/ DestroyList(&L); printf("表已删除!\n"); getchar(); break; case 10: /*合并链表*/ { SQLIST La; size_t i = 0; InitList(&La); srand((int)time(NULL)); for (i=1; i<=10; ++i) { InsertList(&La, i, rand()%15); } printf("待求并集的表为: "); TraveList(&La); UnionList(&L, &La); DestroyList(&La);/*避免内存泄漏*/ printf("操作完成!\n"); getchar(); break; } case 11: /*求前驱结点*/ v = InputValue("寻找哪个元素的前驱结点: "); if (OK == PriorELem(&L, v , &e)) { printf("前驱结点元素为: %d", e); } else { printf("未找到!\n"); } getchar(); break; case 12: /*求后去结点*/ v = InputValue("寻找哪个元素的后驱结点: "); if (OK == NextELem(&L, v , &e)) { printf("后驱结点元素为: %d", e); } else { printf("未找到!\n"); } getchar(); break; default: printf("请重新选择!\n"); getchar(); break; }/*switch_@1*/ } /*while_@1*/ return EXIT_SUCCESS; }
int main(void) { int select; /*保存选择变量*/ size_t pos; /*位序*/ Elem e; /*保存从函数返回的结点的值*/ Elem v; /*保存传递给函数的结点的值*/ size_t i= 0; LINKQUEUE Q; InitQueue(&Q); srand((int)time(NULL)); while (i < 10) { InsertQueue(&Q, rand()%20); ++i; } while (1) /*while_@1*/ { if (!Q.front) { printf("队列不存在!\n"); break; } system("cls"); Menu(); printf("请输入您的选择(1~10):"); scanf("%d", &select); getchar(); switch (select) /*switch_@1*/ { case 1: /*入队*/ v = InputValue("入队元素为:"); if (FAILE == InsertQueue(&Q, v)) { printf("入队失败!\n"); } else { printf("入队成功!\n"); } getchar(); break; case 2: /*输出队列*/ printf("队列为:"); TraveQueue(&Q); getchar(); break; case 3: /*出队*/ if (OK == DeleteQueue(&Q, &e)) { printf("出队成功,删除的元素是%d!\n", e); } else { printf("删除失败!\n"); } getchar(); break; case 4: /*输出队列的长度*/ printf("表长为: %d \n", QueueLength(&Q)); getchar(); break; case 5: /*清空队列*/ ClearQueue(&Q); printf("该表已经清空!\n"); getchar(); break; case 6: /*返回队头元素*/ if (OK == GetHead(&Q, &e)) { printf("该结点为:%d\n", e); } else { printf("不存在!\n"); } getchar(); break; case 7: /*判断队列是否为空*/ if (QueueEmpty(&Q) == TRUE) { printf("队列为空!\n"); } else { printf("队列非空!\n"); } getchar(); break; case 8: /*销毁队列*/ DestroyQueue(&Q); printf("队列已删除!\n"); getchar(); break; default: printf("请重新选择!\n"); getchar(); break; }/*switch_@1*/ } /*while_@1*/ return EXIT_SUCCESS; }