C++ 程序从给定的一组数字或字符中生成随机分区

c++server side programmingprogramming更新于 2024/10/25 3:19:00

这是一个 C++ 程序,用于从给定的一组数字或字符中生成随机分区。

算法

开始
   以整数或字符作为输入。
​​   对于选择 1:
      以 n 整数数组为输入。
​​      分配 l = 0 以遍历数组。
      使用 rand(),生成 n 的随机整数分区。
      对于每个分区 i,从索引值 l 打印下一个 i 个整数。
   对于选择 2:
      在 ch[] 中输入一个字符串。
      计算字符串的长度并将 l 赋值为 0,它将遍历字符串。
      生成字符串长度的随机整数分区。
      对于每个分区 i,从索引值 l 开始打印接下来的 i 个字符。
结束

示例

#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
int main() {
   int n, i, j, l, c;
   cout<<"输入 1(整数)和 2(字符数组)以生成数组:";
   cin>>c;
   //对于选择 1:
   if(c== 1) {
      cout<<"\n输入整数数组中的元素数量:";
      cin>>n;
      int a[n];
      cout<<"\n输入数组的元素:\n";
      for(i = 0; i < n; i++) {
           cout<<"输入<<<i+1<<"元素:";
       cin>>a[i];
      }
      cout<<"\n给定数组的随机分区为:\n";
      l = 0;
      while(n > 0) {
          cout<<"\t[";
         i = rand()%n + 1;
         n = n-i;
         for(j = 0; j < i; j++) {
            cout<<a[l]<<" ";
          l++;
         }
         cout<<"]";
      }
   }
   //对于选择为2的情况:
   else {
      char ch[100];
      cout<<"输入字符:";
      cin>>ch;
      n = strlen(ch);
      cout<<"\n给定字符串的随机分区为:\n";
      l = 0; //赋值l= 0,遍历数组。
      while(n > 0) {
         cout<<"\t[ ";
         i = rand()%n + 1;
         n = n-i;
         for(j = 0; j < i; j++) {
            cout<<ch[l]<<&" &";;
          l++;
         }
         cout<<&"]&";;
      }
   }
   return 0;
}

输出

输入 1 表示整数,2 表示字符数组,生成数组:1
输入整数数组元素个数:10
输入数组元素:
输入 1 个元素:10
输入 2 个元素:9
输入 3 个元素:8
输入 4 个元素:7
输入 5 个元素:6
输入 6 个元素:5
输入 7 个元素:4
输入 8 个元素:3
输入 9 个元素:2
输入 10 个元素:1
给定数组的随机分区为:
[10 9 ] [8 7 6 5 ] [4 3 2 ] [1 ]

输出

输入 1 表示整数,2 表示字符数组,生成数组: 2
输入字符:ABCDEFGHIJKLMNOPQRSTUVWXYZ

给定字符串的随机分区为:
[ A B C D E F G H I J K L M N O P ] [ Q R S T U V W X ] [ Y ] [ Z ]

相关文章