大一新生C语言随机红包问题,不清楚循环语句怎么处理

img

求大佬帮解

一个简单的实现:


#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()函数作为随机数种子,但是随机度好像还不够