有n个字符串 再有几个不同的字符串a,b,c.. 怎么随机的把a,b,c 放在n个字符串中并替换A[n]所在的位置
解决方案 »
- 如何利用命名管道和远程机通信
- 有人使用GDAL/OGR吗?
- 如何实现第二次输出到excel的数据能够接着第一次的数据保存
- c# 调用c写的动态链接库时产生的问题,返回参数为结构,结构返回的值不对?
- 为什么我的对话框程序在使用dlg.DoModal();后不调用OnInitDialog()了?
- vc调试错误,请帮忙分析啊
- 为什么VC总是无法保存文件
- 我怎么在对话框的ToolBar上的某个按扭,在对话框第1次出现时disable?
- 请问如何用Visual C++通过调用MAPI编写电子邮件程序,要求能收邮件,发邮件(带附加邮件)
- 如何在程序中动态设置ADO DATA数据源,继而绑定DATAGRID控件的数据源
- 求助:字符串
- CSliderCtrl控件的应用,在线等,解决就结贴!
int indexer[n];
并初始化值为0~n-1
然后对数组随机排序(排序的大小比较换用伪随机器生成的结果,以随机返回的结果排序),然后取前x个,把你的a,b,c,d依次填入A[indexer[i]]的位置即可。
有2个字符串 zzz yyy aaa bbb zzz ddd yyy fff 随机后是这个样子 当然还有很多种情况
int main()
{
char* szOrcString[6] = {"aaa", "bbb", "ccc", "ddd", "eee", "fff"};
char* szRepString[2] = {"zzz", "yyy"};
int nIndex[2] = {0};
srand((unsigned)time(0));
nIndex[0] = rand() % 7;
nIndex[1] = rand() % 6;
while( nIndex[0] == nIndex[1] )
{
nIndex[1] = rand() % 7;
} int nRepIndex = rand() % 2;
szOrcString[nIndex[0]] = szRepString[nRepIndex];
szOrcString[nIndex[1]] = szRepString[nRepIndex]; for( int i = 0 ; i < 6 ; i++ )
printf("%s ", *(szOrcString + i) ); system("pause");
}
#include <algorithm>
#include <ctime>
#include <iostream>
#include <string>
#include <vector>using namespace std;#define M 2
#define N 6#define MIN(a, b) ((a) <= (b) ? (a) : (b))int
main()
{
srand(time(0)); vector<int> replaceIdc;
for (int i = 0; i < N; ++i) {
replaceIdc.push_back(i);
}
random_shuffle(replaceIdc.begin(), replaceIdc.end()); string strs[N] = {"aaa", "bbb", "ccc", "ddd", "eee", "fff"};
string replaceStrs[M] = { "zzz", "yyy" };
for (int i = 0; i < MIN(M, N); ++i) {
strs[replaceIdc[i]] = replaceStrs[i];
} for (int i = 0; i < N; ++i) {
cout << strs[i] << endl;
} return 0;
}
PS:我觉得这个问题是不是应该发在算法版?