击鼓传花 c语言的程序

击鼓传花 c语言的程序,第1张

/************************************************************************/

/* 击鼓传花 c语言的程序     

/*本来我只是想不断产生一个随机数来决定花在谁手里的,

/*但那样子很明显把游戏弄无聊了, 所以我就开了个简单的线程增加乐趣,

/*实际中这种游戏也是两个线程:一个传花,一个击鼓。

/*我的代码中主程序击鼓,子线程传花,

/*这样子玩起来就有游戏的感觉和乐趣了,祝楼主玩得开心

/************************************************************************/

#include<iostream>

#include <stdio.h>

#include<windows.h>

#include<process.h>

using namespace std

int flag = 0//控制是否停止击鼓

int i = 0//控制花在谁手里

int n//游戏人数

int stopgameflag = 0//是否结束游戏

static unsigned __stdcall Threadforflower(void* arg)

{

    while(!stopgameflag)

    {

        while(flag == 0)

        {

            i++

            if (i == n)

            {

                i = 0

            }

        }

        Sleep(10)

    }

    return 1

}

int main()

{

    char str[20] = {0}

    cout<<"请输入参加游戏人数:"

    cin>>n

    HANDLE hThread

    unsigned threadID

    hThread = (HANDLE) _beginthreadex(NULL, 0, Threadforflower, NULL, 0, &threadID)

    if (hThread == NULL)

    {

        cout<<"传花线程创建失败!!"<<endl

        return 0

    }

    cout<<"传花线程创建成功!!(按下字符s键并回车时,停止击鼓, 输入over并回车时结束游戏,输入其他则重新击鼓)"<<endl

    while(1)

    {

        cout<<"开始击鼓..."<<endl

        fflush(stdin)

        cin>>str

        if (!strcmp(str , "over") || !strcmp(str , "OVER"))

        {

            flag = 1

            stopgameflag = 1

            break

        }

        if (!strcmp(str, "s") || !strcmp(str , "S"))

        {

            flag = 1

            cout<<"花在第"<<i<<"个人手中"<<endl

            flag = 0

        }

    }

    WaitForSingleObject(hThread, INFINITE )

    cout<<"游戏结束"<<endl

    return 0

}

//游戏我玩过了,不错不错

击鼓传花是一款看广告挣小钱的休闲工具。这款在手机公众号上运行的产品由西藏宜唤通信息科技有限公司开发。

 

击鼓:用户点击一款广告,观看特定的时长(一般最短5秒,最长60秒),则可以获得现金奖励。凑齐广告要求观看总人数 (如100人)后,现金奖励将发放到每个观看者帐户上。如果在规定时间(如30天)内未凑足总人数(如100人),则任务失败,无法分到现金奖励。

 

传花:鼓励用户分享广告给朋友,共同分享奖励,早点达成完成任务的总人数。

 

奖励:现金奖励将进入用户在二二社区的帐户,达到微信的提现标准(1元以上)时,可随时提取现金至微信钱包。

产品真实,提现靠谱。欢迎大家搜索并关注”二二社区“公众号,点击左下角的击鼓传花进行体验。

代码如下(直接复制就可以实现了):

#include <iostream.h>

#include <stdlib.h>

#define N 100

double f(int n) //计算阶乘

{

double s=1.0

for(int i=1i<=ni++)

{

s=s*i

}

return s

}

char p(double s)

{

char n='0',m[N]

int i=0

gcvt(s,100,m)//双精度浮点型转字符数组的库函数

while(m[i++]!='.')

for(int k=i-2k>=0k--)//求出得到的数的最后一位非0的数字

{

n=m[k]

if(n!='0')

break

}

return n

}

void main()

{

int n[5]

double s

char m

for(int i=0i<5i++)

{

cout<<"Input: "

cin>>n[i]

}

for(i=0i<5i++)

{

s=f(n[i])

m=p(s)

cout<<"Output: "<<m<<endl

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8042695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存