【发布时间】:2019-04-14 07:28:18
【问题描述】:
我正在尝试制作一个充满随机字母的 5x10 矩阵,一旦使用了该字母,就不应再使用它。其中25个必须是小写字母,25个应该是大写字母。偶数列也应该是小写字母。我不知道如何避免使用相同的字母。我试图将使用过的字母发送到另一个由一维组成的数组,然后检查它发送的每个字母,这样就不会使用相同的字母,但我的编码技能不允许我这样做。 所以,到目前为止我的代码是这样的:
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <ctime>
#include <locale.h>
using namespace std;
const int row = 5;
const int column = 10;
int main()
{
char matris[row][column];
srand(time(0));
for (int i = 0; i < row; i++)
for (int j = 0; j < column; j++)
if(j % 2 == 0)
matris[i][j] = rand() % 25 + 65;
else
matris[i][j] = rand() % 25 + 97;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
cout << setw(5) << matris[i][j];
cout << endl;
}
system("pause");
return 0;
}
那么,我怎样才能避免使用相同的字母呢?我走错了吗?有没有更简单的方法来做我想做的事情?谢谢...
【问题讨论】:
-
您的问题必须更加精确,因为“不起作用”并不是一个充分的描述。但是,您需要使用调试器逐步执行代码的实际技能。您可以单步执行它并检查变量的当前状态,因此在每一步之后您都可以验证状态是否与您预期的一样,这将很快发现错误。
-
创建一个包含所有可能字母的静态数组。如果您对它们中的每一个必须在哪里有一些特殊要求,您可以将它分成小部分和大部分。然后对数组应用一个随机排列(或者如果你拆分它,则两者都应用),你有随机排序的字母,你可以用它来简单地填充你的矩阵。
-
澄清一下,偶数列(即 2、4、6... 应该很小)和奇数列(1、3、5...)应该很大?假设基于 1 的索引。
-
是的。这就是我使用 if 声明的原因。
标签: c++