随机生成1-31号红球5个,随机生成1-16号白球2个,红球白球分别按照从小到大的顺序排序
c
#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;
}
标准写法
c
#include<stdio.h>
#include<stdlib.h>
void getball(int *ball,int count,int base){ //count是要取走的球,编号为1-base
int 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;
}