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 ]