大神看下随机数的问题

qq_36639412 2017-02-02 07:35:33
模拟红包,输出都是输入金额的半倍,输入1元,5个红包,输出分配的结果是1.5元,
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
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分钱",money_fen);
printf("输入红包的数量");
while(scanf("%d",&part)!=1||part<1||part>100)
{printf("红包数量错误");
fflush(stdin);
}
printf("红包数量:%d\n",part);
if(money_fen<part)
{printf("红包金额不够红包数量分配");
exit(0);
}
srand(time(NULL));
for(i=0;i<part;++i)
{
if(i==part-1)
per[i]=money_fen;
else if(i==0)
{
per[i]=money_fen/2;
}
else
{
if(money_fen/3==0)
per[i]=1;
else
{
per[i]=rand()%(money_fen/3)+1;

}
if(money_fen-per[i]<part-i-1)
--i;
else
money_fen-=per[i];
}
}
for(i=0;i<part;++i)
printf("%d:%.2f元\n",i+1,(float)per[i]/100);
}
...全文
114 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 2017-02-03
  • 打赏
  • 举报
回复
else if (i == 0)这个分支里少了一句money_fen -= per[i];

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
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分钱", money_fen);
	printf("输入红包的数量");
	while (scanf("%d", &part) != 1 || part<1 || part>100)
	{
		printf("红包数量错误");
		fflush(stdin);
	}
	printf("红包数量:%d\n", part);
	if (money_fen<part)
	{
		printf("红包金额不够红包数量分配");
		exit(0);
	}
	srand(time(NULL));
	for (i = 0; i<part; ++i)
	{
		if (i == part - 1)
			per[i] = money_fen;
		else if (i == 0)
		{
			per[i] = money_fen / 2;
			money_fen -= per[i];
		}
		else
		{
			if (money_fen / 3 == 0)
				per[i] = 1;
			else
			{
				per[i] = rand() % (money_fen / 3) + 1;

			}
			if (money_fen - per[i]<part - i - 1)
				--i;
			else
				money_fen -= per[i];
		}
	}
	for (i = 0; i<part; ++i)
		printf("%d:%.2f元\n", i + 1, (float)per[i] / 100);
}

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧