微信红包c语言程序,C语言 微信红包
滿意答案
#include?
#include?
#include?
#define?MAX_TOTAL_MONEY?200?//紅包的最大金額
#define?MIN_PER_PLAYER??1???//一個人搶到的的最小面額1元
#define?MAX_PLAYER_CNT?(MAX_TOTAL_MONEY/MIN_PER_PLAYER)?//最大搶紅包的游戲人數
typedef?struct?player
{
char?*name;//標記玩家?可以不填
unsigned?int?money_get;//搶到的紅包
}PLAYER_T;
//每個人領取到的紅包金額不等?這個要求比較難搞?暫時不考慮
int?main(int?argc,?char?*argv[])
{
unsigned?int?total_money?=?0;????//不考慮角和分?浮點運算比較復雜
unsigned?int?player_cnt?=?0;
int?on_off?=?0;
int?i?=?0;
int?j?=?0;
PLAYER_T?player[MAX_PLAYER_CNT]?=?{0};
PLAYER_T?tmp?=?{0};
printf("輸入紅包金額:\n");
scanf("%u",?&total_money);
printf("輸入游戲人數:\n");
scanf("%u",?&player_cnt);
printf("是否需要減小貧富差距(0為關閉其余為開啟):\n");
scanf("%u",?&on_off);
//不符合規則的輸入判斷
if?(total_money?>?MAX_TOTAL_MONEY?||?0?==?total_money?||?0?==?player_cnt?||?player_cnt*MIN_PER_PLAYER?>?total_money)
{
printf("紅包金額最小%u元?最大%u元?游戲人數最小1人?最大%u人\n",?MIN_PER_PLAYER,?MAX_TOTAL_MONEY,?MAX_PLAYER_CNT);
return?0;
}
for?(i?=?0;?i?
{
//設置隨機種子
srand(time(NULL)+i);
//根據隨機種子獲取一個偽隨機數作為搶到的紅包?并通過余運算使其始終小于total_money
player[i].money_get?=?rand()%total_money;
//限制所有人所能搶到的最大紅包為當前金額池的1/5而不是全部
if?(0?!=?on_off)
{
if?(total_money?>?5)//5塊錢以上再限制
{
player[i].money_get?=?rand()%(total_money/5);
}
}
//最后一個人拿所有剩下的紅包
if?(player_cnt?-?1?==?i)
{
player[i].money_get?=?total_money;
}
//運氣差隨機到0元?給你最小面額
else?if?(0?==?player[i].money_get)
{
player[i].money_get?=?MIN_PER_PLAYER;
}
//剩下的要保證每個人能搶到最小面額
else?if?(total_money?-?player[i].money_get?
{
player[i].money_get?=?total_money?-?(player_cnt-i-1)*MIN_PER_PLAYER;
}
//把搶到的金額從紅包池中減掉
total_money?-=?player[i].money_get;
//如果填了name?可以把名字打印出來
printf("第%d個玩家搶到紅包:%u元\n",?i+1,?player[i].money_get);
}
//冒泡排序?找出手氣最佳者
for?(i?=?0;?i?
{
for?(j?=?i+1;?j?
{
if?(player[i].money_get?
{
memcpy(&tmp,?&player[j],?sizeof(PLAYER_T));
memcpy(&player[j],?&player[i],?sizeof(PLAYER_T));
memcpy(&player[i],?&tmp,?sizeof(PLAYER_T));
}
}
}
printf("手氣最佳者搶到紅包:%u元\n",?player[0].money_get);//如果填了name?可以把名字打印出來
return?0;
}
00分享舉報
總結
以上是生活随笔為你收集整理的微信红包c语言程序,C语言 微信红包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你使用Photoshop制作炭笔
- 下一篇: coreldraw粉刷的感觉_Corel