复习C语言随笔 四

24 篇文章 0 订阅
20 篇文章 0 订阅

复习C语言随笔 四

1. 传参

#include<stdio.h>

int jisuandaxiao(int a[]){
    return sizeof(a)/sizeof(a[0]);
}

int main(){
    int a[6] = {0,1,2,3,4,5};
    printf("%d", jisuandaxiao(a));
    return 0;
} 

运行结果如下:

本例中本想求出数组a的长度,应该为6。但是输出结果为2,原因在于在形参中的a是数组a的首地址,其长度为8个字节(64位),a[0]的长度为4个字节,所以返回2。

所以,在通常的一些需要使用数组或指针作为形参的函数中,有‘偏移量’这个参数。其意义便在于此。

2.随机数

rand() 对于给定的种子seed, rand()会反复产生特定的随机序列

srand(unsigned int time()) 为 rand() 设置起点,只设一个就可以

time_t time() 返回时间 执行该函数的时刻与1970-1-1 0:0:0 的时间差

eg:输出1000个100以内的随机数

srand((unsigned int)time(NULL)); 
for(i = 0; i<1000; i++){
    num = rand()%100+1;
    printf("%d",num);
}

一个利用随机数函数的典型程序: 猜数字游戏

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(){
    int a;
    int b;
    int c=1;
    int count=0;
    srand(time(NULL));
    printf("*************游戏开始***************\n"); 
    while(c==1 || scanf("%d",&c))
    {
        if(c==1)
        {
            count++;
            a = rand()%100;
            printf("请猜这个数字(100以内)\n");
            while(!NULL){
                scanf("%d",&b);
                if(b>a) printf("猜大了\n");
                else if (b<a) printf("猜小了\n");
                else
                {
                    printf("真棒,猜对了!!\n");
                    break;  
                } 
            }
            c=0;    
        }
        else break;
        printf("输入1开始游戏,输入其他结束游戏\n");
    }   
    printf("共进行%d次游戏",count); 
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值