求大佬帮解
一个简单的实现:
#include <stdio.h>
#include <stdlib.h> // 提供rand()函数原型
#include <time.h> //提供time()函数原型
int main(void){
int money,money2;
int num;
FILE * fp;
scanf("%d %d",&money,&num);
money2 = money;
int all[num];
srand((unsigned)time(0));
int i ;
for(i=0;i<num;i++){
if(i==num-1){
all[i] = money;
break;
}
int r = rand();
all[i]=r%(money/(num-i));
while(all[i]==0){
r = rand();
all[i]=r%(money/(num-i));
}
money = money -all[i];
}
int j =0;
fp = fopen("red_packet.txt","w+");
fprintf(fp,"%d\t%d\t",money2,num);
for(i=0;i<num;i++){
fprintf(fp,"%d\t",all[i]);
}
fclose(fp);
return 0;
}
使用了time()函数作为随机数种子,但是随机度好像还不够