随机产生四个有序且不重复的五个数(第五天)
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(int argc, const char * argv[]) {
//定义一个数组
int ball[6]={};
for(int i = 0;i < 5;i++){
int temp;
//实现随机在1--32之间产生数据
temp = arc4random()%32+1;
//实现据不重复
if(i == 0){
//随机产生第一个数据直接写进去
ball[0] = temp;
}
else{
//不是第一个数据有可能重复
/*判断出现的这个数是否重复,即与其前面的随机数依次比较*/
bool isExit=false;
//定义一个变量计是否重复
for(int j = 0;j < i; j++){
if(ball[j] == temp){
/*如果重复,i-1退出,重新得到浪费的这一次循环 */
isExit=true;
i--;
break;
}
}
if(isExit == false){
//不重复,将值赋给ball
ball[i] = temp;
}
}
}
//保证数据按顺序输出
int t;
for (int j = 0; j<4; j++){
for (int i = 0; i<4-j; i++){
if(ball[i]>ball[i+1]){
//如果前面一数大于后面一个数,则两数互换
t = ball[i];
ball[i] = ball[i+1];
ball[i+1] = t;
}
}
}
//打印数据
for(int i=0;i<5;i++){
printf("%-3d",ball[i]);
}
printf("\n");
return 0;
}