关于C语言随机数问题

关于C语言随机数问题#include<stdio.h>#include<stdlib.h>voidmain(){inti,a[100],all,n,left=0,num=... 关于C语言随机数问题#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,a[100],all,n,left=0,num=0,k=0;
printf("请输入红包金额:\n");
scanf("%d",&all);
printf("请输入红包个数:\n");
scanf("%d",&n);
for(i=1;i<n;i++)
{
a[i]=("%d",rand()%(all-num));
num=num+a[i];
printf("%d\n",a[i]);
}
a[i]=all-num;

printf("%d\n",a[i]);
}
这段代码运行,为什么会有a[i]=0的情况。
展开
 我来答
microroom
科技发烧友

2018-04-24 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1609万
展开全部
//当rand()产生的随机数刚好能整除(all-num)时,rand()%(all-num)的结果就是0啊。
//下面是一个新的

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void main()
{
int i,t,all,n;

srand(time(NULL));
printf("请输入红包金额:");
scanf("%d",&all);
printf("请输入红包个数:");
scanf("%d",&n);
for(i=1;i<n;i)
{
t=rand()%all;
//all-t>=n-i的作用是确保剩下的n-i个红包至少每个还可以封1元
if(t!=0 && all-t>=n-i)
{
all-=t;
printf("%d\n",t);
i++;
}
}
printf("%d\n",all);
}
匿名用户
2018-04-24
展开全部
当rand( )生成的随机数正好等于 all-num的时候, rand( )%(all-num)就等于0了啊.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式