随机函数rand()详解
随机生成1-31号红球5个,随机生成1-16号白球2个,红球白球分别按照从小到大的顺序排序
#include<stdio.h>
#include<stdlib.h>
int main() {int n = 0;int a[7] = {0};while (n < 5) {a[n++] = rand() % 32;}a[n++] = rand() % 17;a[n++] = rand() % 17;printf("随机生成的数字为:");for (int i = 0; i < n; i++) {printf("%d ", a[i]);}for(int i=0;i<4;i++){for(int j=0;j<4-i;j++){if(a[j]>a[j+1]){int t=a[j];a[j]=a[j+1];a[j+1]=t;}}}if(a[5]>a[6]){int t=a[5];a[5]=a[6];a[6]=t;}printf("排序后结果为:");for(int i=0;i<7;i++){printf("%d ",a[i]);}return 0;
}
标准写法
#include<stdio.h>
#include<stdlib.h>
void getball(int *ball,int count,int base){ //count是要取走的球,编号为1-baseint i=0;int a[31]={0};for(int i=0;i<base;i++){a[i]=i+1;}i=0;while(i!=count){int t=rand()%(31-i);ball[i]=a[t];a[t]=a[31-i-1]; //最后一个球移过去,体现球的已取走i++;}
}
void sort(int a[],int n){for(int i=0;i<n;i++){for(int j=0;j<n-1;j++){if(a[j+1]<a[j]){int t=a[j];a[j]=a[j+1];a[j+1]=t;}}}
}
int main(){int ball[7]={0};getball(ball,5,31);getball(ball+5,2,16);sort(ball,5);sort(ball+5,2);for(int i=0;i<7;i++){printf("%d ",ball[i]);}return 0;
}