c语言的编程问题,望求解答

img


第一二题,实在不会的话,只解答一问也是可以的
对于这个问题题目在上图里面

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(NULL));
    int i;
    for (i = 0; i < 5; i++){
      //可以为0情况
      printf("%d ",int(rand()%100));
      //不能为0情况 
      //printf("%d ",int(rand()%99)+1);
    }
    return 0;
}

第二题:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int x;
    scanf("%d",&x);
    srand(time(NULL));
    int i,sum=0;
    for (i = 0; i < 4; i++){
      int num=int(rand()%(x/5))+1;
      printf("%d ",num); 
      sum+=num;
    }
    print("%d",x-sum);
    return 0;
}

红包里是不能为0元的,所以应该是rand()%99+1

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
    srand((unsigned int)time(NULL));
    for (int i = 0; i < 5; i++)
        printf("%d ",rand()%99+1); 
    return 0;
}

img

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
    srand((unsigned int)time(NULL));
    int res = 100,r;
    for (int i = 0; i < 4; i++)
    {
        r = rand()%(res-4+i)+1;
        printf("%d ",r);
        res -= r;
    }
    printf("%d",res);
    return 0;
}

img