生成随机数

rand 函数包含在头文件stdlib.h中

产生随机数范围:[66,88]

int a=66+rand()%23;

结论产生随机数范围:[m,n]

int a=m+rand()%(n-m+1);

举例

① 随机产生10个[150,270)范围内随机数

#include
#include
#include
int main()
{
    int a[11];
    int i;
    printf("随机产生10个[150,270)范围内随机数:\n\n");
    srand(time(0));   //srand(time(NULL));
    for(i=1;i<=10;i++)
        //一般键盘随机输入10个数方式:scanf("%d",&a[i]);
        a[i]=150+rand()%120;
    for(i=1;i<=10;i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0; 
}

② 随机产生10个[0,99)范围内随机数(指针

#include
#include
#include
int main()
{
    int a[10]; 
    int *p; 
    printf("随机产生10个[0,99)范围内随机数:\n\n");
    srand(time(0));    //srand(time(NULL));    
    for(p=a;p<(a+10);p++)
        *p=rand()%100; 
    for(p=a;p<(a+10);p++)
        printf("%d ",*p);   //使用指针指向当前的数组元素 
    printf("\n"); 
    return 0; 
}

③ 地址 — 随机数

#include
#include
#include
int main()
{
    int a[10];
    int i;
    printf("产生10个[0,99]随机数:\n\n");
    srand(time(0));          //srand(time(NULL));   
    for(i=0;i<10;i++)
    {
        a[i]=rand()%100;      //随机函数产生 [0,100)
        printf("%d  ",a[i]); 
    }
    printf("\n\n");
    printf("  地址   --- 随机数\n\n"); 
    for(i=0;i<10;i++)
        printf(" %d --- %d\n",a+i,*(a+i));   //通过原数组名和元素序号计算地址 
    printf("\n"); 
    return 0; 
}

④ 实例:选择排序

#include
#include
#include
int main()
{
    int a[10];
    int i,t,j,min;
    srand(time(0));
    printf("随机产生10个[0,99]随机数:\n");
    for(i=0;i<10;i++)
        a[i]=rand()%100;      //产生10随机数
    for(i=0;i<10;i++)
        printf("%d ",a[i]);   //输出随机数
    printf("\n\n");
    for(i=0;i<=9;i++)
    {
        min=i;
        for(j=i+1;j<10;j++)
           if(a[min]>a[j])
               min=j;
       if(i!=min)
       {
           t=a[i];
           a[i]=a[min];
           a[min]=t;
       } 
    } 
    printf("由小到大排序:\n");
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
    return 0;
}

你可能感兴趣的:(c语言,c++)