给小白的“一个骰子”

就是一个随机数【汗】

#include <iostream>  // cout 对象需要这个库
#include <stdlib.h>  // randmon 函数需要这个库
#include <signal.h>  // signal 函数要这个库
#include <unistd.h>  // sleep 函数要这个库
using namespace std;  //省略后续代码中的std名字空间的对象或函数


void overfunc(int sig);  //预申明了一个函数

int total = 0;  //申明一个变量:总数, 用于计录猜骰子的总次数。
int rcount= 0;  //申明一个变量:正确的次数,猜中的次数。

int main()  //主函数,或称之为入口函数
{
        srandom(time(NULL));  //创建个随机种子,以便后续使用random函数获取随机数。
        int num; //申明一个变量num,用来获取外部输入,即用户猜的点数。


        signal(SIGINT,overfunc); //设置ctrl+c 中断时要运行的函数 overfunc

        while(true) // while语句,while 意思是当什么什么情况下执行。 while(true) 那个true是真的意思,也就是当(真是真的时候) 执行
                    // 真当然是真了,所以这句意思就是永远执行。
        {
                cout << "你猜是几?  " << flush;  //cout 是输出设备的对象名,要理解呀,不理解得问老师,不问就是2B
                                            // 双引号把要输出的内容括起来了,其中有 你猜是几? 这五个字符,那个 是终端特 殊符,表示加下划线
                                            // 因为在双引号里,所以空格也是字符,就会出现一串加了下划线的空格。 填空题,晓得不?
                                            // 最后的 << flush 告诉cout对象刷新输出内容,也就是直接输出的终端上。
                cin >> num;   //等待外部输入,获取一个整数,用户就在执行这句时给程序一个输入,这里的输入都被程序认为是猜的数字
                cout << ""<<flush;  //这儿用 取消之前的下划线格式。flush 再次刷新缓存。
                long int r = random();  //获取一个随机数 这是一个从0 ~ 16*(2^31 -16) 的数
                r = (r%6) + 1;    // r%6 其中% 是取余数的意思,r%6 就是把变量r的值除以6 得到的余数,这余数要么是0,要么是1,2,3,4,5。
                                  // r = (r%6) + 1 就是把r的值对6取余以后再加上1的结果再赋值给r. 这个=号 不是判断,而是 赋值的意思,判断是否相等要用两个等号表示,即==
                cout << "摇出一个:" << r << endl;   //输出 摇出一个: ??
                total ++;  //总数加1并保存到total 变量中 这句也就是 total= total +1;
                if(r == num)  //如果猜中了
                {
                        rcount ++;  //正确的次数加1, rcount = rcount +1;
                }
                sleep(0);
        }

}

void overfunc(int sig)   // 函数overfunc, 输出统计结果
{
        cout << "" << endl;
        cout << "总共猜了 :" << total << " 次"<<endl;
        cout << "共猜中了 :" << rcount << " 次"<<endl;
        cout << "正确率为 :" << 100.0* rcount / total  << "%" << endl;
        exit(0);
}

 linux哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值