蔡諝的窝

博客园 首页 新随笔 联系 订阅 管理

2011年9月30日 #

摘要: #include<iostream>using namespace std;void BubbleSort(int *a,int istart,int len)//冒泡排序{ //a为数组,len为数组长度,对a[istart]~a[len-1]进行排序,小浮大沉 //从后面往前两两比较,小的上浮,直到最顶端a[istart]中存放的是剩余数组中最小的数。 for(int i=len;i>istart+1;i--) { if(a[i-2]>a[i-1]) { int temp=a[i-2]; a[i-2]=a[i-1]; a[i-1]=temp; } } if(ista 阅读全文
posted @ 2011-09-30 10:41 蔡諝 阅读(470) 评论(0) 推荐(0)

2011年9月27日 #

摘要: 华为给定函数接口void BigNumAdd(const char *ca[],const char *cb[],int *ians[]);要求实现大数相加功能。个人猜测:数据的存储情况是两维数组(字符型),ca[i]表示的是某行,这是一个地址,指向一个char(字符),例如数字123,存储时是第一行1,即ca[1]=1;第二行2,即ca[2]=2;第三行3,即ca[3]=3;ca[i]用NULL初始化,这用来做ca是否结束的判断;ca开辟的是alen空间,cb开辟的是blen空间,ians开辟maxnum空间;思路见:http://www.cnblogs.com/caixu/archive/ 阅读全文
posted @ 2011-09-27 11:06 蔡諝 阅读(2089) 评论(1) 推荐(0)

2011年9月26日 #

摘要: 思想:大数超出了计算机的整形表示范围,故一般用字符串记录,两个大数相加就不能简单的用“+”进行运算,得绕个弯。先把字符串转成int数组(借助与字符'0'的差来实现),每位都放在数组中,然后对数组进行按位加。#include <iostream>using namespace std;const int maxnum=20;void charTnum(int* intab,char *charab,int len)//字符串转整形,高低位倒置{ int i=0; for (i=0;i<len;i++) { intab[len-1-i]=charab[i]- 阅读全文
posted @ 2011-09-26 19:25 蔡諝 阅读(4139) 评论(0) 推荐(0)

摘要: 贴代码:#include <iostream>using namespace std;void main(){ char *a=(char*)malloc(20*sizeof(char)); a="ab"; free(a);}---------------------出错截图:---------------------找原因:把代码改为: char *a=(char*)malloc(20*sizeof(char)); a[0]='a'; a[1]='b'; a[2]='\0'; free(a);则没有出现上述问题! 阅读全文
posted @ 2011-09-26 16:36 蔡諝 阅读(244) 评论(0) 推荐(0)

2011年9月22日 #

摘要: 约瑟夫环描述:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。举例: n = 9, k = 1, m = 5【解答】出局人的顺序为5, 1, 7, 4, 3, 6, 9, 2, 8。该过程可以用循环链表的方法模拟实现,不是此文的重点,不给出代码实现。网上有人给出了约瑟夫环的数学方法,但看它的叙述让人很费解,现给出本人的描述:撇开题目,n个人编号0,1,2,...,n-1,游戏进行一轮踢出1位同学(m-1),剩n-1人(编号0,1,2,... 阅读全文
posted @ 2011-09-22 21:26 蔡諝 阅读(645) 评论(0) 推荐(0)

2011年6月25日 #

摘要: 未解决问题如下:1)目的:把m文件编译成cpp、hpp、exe文件,以便在C程序中调用 环境:VS2008+Matlab2009b M文件代码:function y=exmaple3(n)y=0;for i=1:n y=y+i;end 编译命令:mcc -m exmaple3 Error:'cmd' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 Error: An error occurred while shelling out to mbuild (error code = 1). Unable to build executable (specify the - 阅读全文
posted @ 2011-06-25 09:47 蔡諝 阅读(2368) 评论(0) 推荐(0)

2011年6月24日 #

摘要: 直接给出步骤:1)设置Matlab的编译器,见【MATLAB与C的混合编程】之【MATLAB调用C程序】2)编译m文件成dll.【2.1】---------建立MyAdd.m-------------function [c] = MyAdd(a, b);c = a + b;-----------------------------------【2.2】Matlab中运行mcc -W cpplib:libMyAdd -T link:lib MyAdd成功后,我们会发现目录下多了很多文件,其中libMyAdd.dll、libMyAdd.lib、libMyAdd.h为有用文件,接下来要用到。3)设置 阅读全文
posted @ 2011-06-24 16:28 蔡諝 阅读(3440) 评论(0) 推荐(0)

摘要: 本就就针对网上到处流行的以“Matlab与C/C++混合编程”为题的例子进行调试。此例已调试成功,代码如下:#pragma comment( lib, "libmx.lib" )#pragma comment( lib, "libmex.lib" )#pragma comment( lib, "libeng.lib" )#include<windows.h>#include "engine.h"#include<iostream>using namespace std;int PASCAL 阅读全文
posted @ 2011-06-24 15:43 蔡諝 阅读(670) 评论(0) 推荐(0)

摘要: 本文是调试Matlab中自带的例子,已成功。/** engwindemo.c** This is a simple program that illustrates how to call the MATLAB* Engine functions from a C program for windows** Note: * Use the Lcc or Microsoft Visual C++ compiler to build engwindemo.exe. * The source code in engwindemo.c is not supported for other compil 阅读全文
posted @ 2011-06-24 15:11 蔡諝 阅读(766) 评论(0) 推荐(0)

摘要: 本程序特色:VS2008的C++程序中调用Matlab进行画图先贴本人调试通过的代码:#pragma comment(lib, "libmx.lib")//#pragma comment(lib, "libmat.lib")//注销了也没关系#pragma comment(lib, "libeng.lib")#include <math.h>#include "engine.h"#include <iostream>using namespace std;int main(){ const 阅读全文
posted @ 2011-06-24 14:48 蔡諝 阅读(2462) 评论(0) 推荐(0)