本文主要是介绍红白蓝随机一批盒,要求每个盒只分析一次,让他们次序为红白蓝,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
15
蓝 红 红 红 白 红 红 白 白 蓝 蓝 红 红 红 蓝
红 红 红 红 红 红 红 红 白 白 白 蓝 蓝 蓝 蓝
#include <iostream>
#include <ctime>
#include <cstdlib>#define MAX 100int a[MAX];
char name[][5] = {"红","白","蓝"};
int n;int getI() {return rand() % 3;
}
void Print(int n) {for (int i = 0; i < n; i++) {printf("%s ",name[a[i]]);}puts("");}
void fun1(int a[], int t) {int k = a[t];for (int i = t - 1; i >= 0; i--)a[i + 1] = a[i];a[0] = k;
}
void fun2(int a[],int n) {int k = a[0];for (int i = 0; i < n - 1; i++)a[i] = a[i + 1];a[n - 1] = k;
}
int main() {srand(time(NULL));scanf("%d",&n);for (int i = 0; i < n; i++)a[i] = getI();Print(n);int i = 0,j=0;while (1)//每个分析一次{int t = a[i];if (t == 1){i++;}else if (t == 0) {//a[i]放到a[0]处fun1(a, i++);}else { //a[i]放到尾部fun2(a + i,n-i);}j++;//分析元素个数的统计if (j == n)break;}Print(n);
}
这篇关于红白蓝随机一批盒,要求每个盒只分析一次,让他们次序为红白蓝的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!