View Code
int rand_arr[54] = {0}; int rand_idx = 0; int src_arr[54] = {0}; int src_end = 53; int tempsize = 0; int rand_range = 54; srand(NULL); //初始src数组 for(int i=0; i!=54; i++) src_arr[i] = i; for(int i=0; i!=54; i++) { //生成随机数 得到下标 tempsize = rand()%rand_range; //由下标拿数值 存入rand数组 rand_arr[rand_idx++] = src_arr[tempsize]; //最后一位数值填充到被拿走的位置 src_arr[tempsize] = src_arr[src_end]; //缩小随机数产生范围 rand_range--; //src数组末尾下标-- src_end--; } for(int i=0; i!=54; i++) { printf("%d ",rand_arr[i]+1); }