易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++ 标准函数应用小结 之 随机函数

自从接触这门语言到现在有一个多星期的时间了,虽然以后的路还很长,会遇到各种困难,但只要有耐心和毅力,还要脚踏实地的打好基础,就一定能有长途的进步,呵呵,希望在这里的每一个人都和我一起加油,不断进步。
随机函数对每种编程语言来说都是一个不可缺少的环节,那么在C++中它是如何应用的,这里为了方便理解,对以前看过的几篇文章做以下总结:
I ) 本地C++控制台应用程序
C++标准函数库提供一随机数生成器rand,rand()函数不接受参数,默认以1为种子(即起始值)。 随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同。如果需要产生的随机数不需要设定范围的话,用rand()就行。
不要忘记事先定义包含rand()的头文件 #include<stdio.h>和#include<stdlib.h>。如例1 #include<stdio.h>
#include<stdlib.h>
void main()
{
for(int i=0;i<10;i+)
printf("%d\n",rand());
}

具体应用如,要产生0到10的随机数 rand()%(10 + 1); 即 rand()%11;  若1到10 : 1 + rand()%11;以此类推 a到b :            a + rand()%(b - a + 1);
运行后会发现,每次运行程序产生的随机数都是一样的,因为如果种子相同的话,产生的伪随机数列也相同。若要产生每次不同的随机数,可以使用C++中另一函数srand(),可以指定不同的数(无符号整数变元)为种子。
用时间来作为随机数生成器的种子比较理想,time的值每时每刻都不同。所以种子不同,所以,产生的随机数也不同。
如例2 // C++随机函数(VC program)
#include <stdio.h>
#include <iostream>
#include <time.h>
using namespace std;
#define MAX 100
int main(int argc, char* argv[])
{
srand( (unsigned)time( NULL ) );//srand()函数产生一个以当前时间开始的随机种子.应该放在for等循环语句前面 不然要很长时间等待
for (int i=0;i<10;i++)
cout<<rand()%MAX<<endl;//MAX为最大值,其随机域为0~MAX-1
   return 0;
}
 
这样就可以每次得到0到某个范围不同随机数,例题中同样需要先定义包含时间函数time()的头文件。


相关文档:

用GCC输出带C源代码注释的汇编列表文件

我们都知道gcc的-S开关可以用来生成汇编代码,
但有时候,单有汇编文件是不够的,我们希望的是将C语言程序的源代码和汇编语言文本交错在一起查看,
这是LISTING功能,在gcc中并没有专门的FAQ说明,
区区在网上查了很多资料才知道怎么实现,所以特此记下。
gcc -c -g -Wa,-adlhn ee.c >  ee.anno.s
由此生成的e ......

C命名习惯


全大写, 如果必要, 用连字符连接单词
#define SIZE_LIMIT 1024
#define CONFIG_DEBUG 1
#define PRODUCT_ID 0x1123
枚举
单词首字母大写, 不用连字符
enum {
KeyNumLock,
KeyShift,
Key1,
KayA
} Key;
......

C文件操作就这么简单

c文件操作就这么简单
文件操作,稍微一总结.。
FILE是一个结构体类型,在TC和VS中定义不相同,他的作用就是在fopen()之后保存了打开文件的信息。也就是说操作系统帮我们完成了,我们不用管,大大降低了难度吧。
首先我们考虑下对文件的操作,文件类型分为文本和二进制。读写文件的函数一般前面有个f,也就表示file,open ......

object c 内存管理

   看了下官方文档的关于object c 的内存管理,总结下:
 
    在iphone中object c  中的内存管理是通过计数器来管理的,每个对象内部都有一个计数器.新建一个对象,或者这个对象被其他对象引用,多会使计数器加1.Retain 增加计数器值 release 减少计数器值.当计数器为0时对象就deall ......

控制台程序Ctrl +C 退出

[DllImport("kernel32.dll",SetLastError=true)]
[return: MarshalAs( UnmanagedType.Bool )]
static extern bool AllocConsole();
[DllImport("kernel32.dll",SetLastError=true)]
[return: MarshalAs( UnmanagedType.Bool )]
static extern bool FreeConsole();
// Delegate type to be used as the Handler Routin ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号