C语言编程学习-抢红包小游戏

//C语言--抢红包

#include

#include //通用工具头文件

#include //时间头文件

int main(void)

{

float money_yuan;//以元为单位的红包金额

int money_fen;//以分为单位的红包金额

int part;//红包的份数

int per[100];//保存每份红包的金额

int i;

int index;//下标变量(索引)

int tmp;//临时变量

printf("请输入红包的金额:");

scanf("%4f", &money_yuan);

//把以元为单位的红包金额转换为以分为单位的红包金额

money_yuan *= 100;

money_fen = (int)money_yuan;

printf("红包金额:%d分钱\n", money_fen);

printf("请输入红包的数量:");

while(scanf("%d", &part) != 1 || part 100)

{

printf("红包数量错误,请重新输入:");

fflush(stdin);//清空标准输入缓冲区

}

printf("红包数量:%d\n", part);

//检查红包金额与红包数量是否匹配

if(money_fen

{

printf("红包金额不够红包数量分配!\n");

exit(0); //退出程序

}

//红包的分配//(unsigned)time(NULL)

srand(time(NULL));//将从1970年到现在所经过的秒数作为随机种子

for(i = 0; i

{

//如果是最后一份红包,就把余额全部赋给它

if(i == part - 1)

per[i] = money_fen;

else if(i == 0)//第一个红包

{

per[i] = money_fen / 2;//

money_fen -= per[i];

}

else

{

//不是最后一份红包,让该红包的金额在当前余额的1/3之内

if(money_fen / 3 == 0)//如果当前红包余额除上3等于0的话,就把该红包金额赋为1

per[i] = 1;

else

{

per[i] = rand() % (money_fen / 3) + 1;//+1是为了防止出现红包金额为0的情况发生

}

if(money_fen - per[i]

--i;//取消上面所分配的红包

else

money_fen -= per[i];

}

}

//打印红包

for(i = 0; i

printf("%d: %.2f元\n", i + 1, (float)per[i] / 100);

return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容