我有一个结构数组(A[#]),名为Sheep(因为我的任务与羊的DNR有关)。在我完成任务后,我留下了这个结构体:
struct Sheep
{
string Vardas;
char Fragmentas[CMax];
int atitikme = 0;
};
在我的 IT 中,数据是:
(string Vardas) | (char Fragmentas[CMax]) | (int atitikme)
Baltukas TAGCTT 3
Bailioji ATGCAA 3
Smarkuolis AATGAA 1
(char Fragmentas[CMax]不会使用,因此您不必查看它,我只是为了让它清晰明了而命名。)
所有这些数据都来自U2.txt文件,不能在代码中手动输入。
所有剩下的工作就是按照以下规则进行排序:
- 按'int atitikme'从大到小排序。
- 如果'int atitikme'相等,则必须按'a'字母序排列'A[#].Vardas'
为了按'int atitikme'排序,我创建了一个代码:
string q;
char w[20];
int e;
for (int o = 0; o < n-1; o++)
{
for (int p = o+1; p < n-1; p++)
{
if (A[p].atitikme > A[o].atitikme)
{
// - Vardo Keitimas
q = A[o].Vardas;
A[o].Vardas = A[p].Vardas;
A[p].Vardas = q;
// - A[#].atitikme keitimas
e = A[o].atitikme;
A[o].atitikme = A[p].atitikme;
A[p].atitikme = e;
// - DNR farkmentu keitimas
for (int r = 0; r < m; r++)
{
w[r] = A[o].Fragmentas[r];
A[o].Fragmentas[r] = A[p].Fragmentas[r];
A[p].Fragmentas[r] = w[r];
}
}
}
}
n = 4 | m = 6
我需要添加什么来使这段代码运行:
else if (A[p].atitikme == A[o].atitikme)
{
<code>
}
如果“atitikme”等于另一个“atitikme”,那么A[p].Vardas和A[o].Vardas必须按字母顺序排序,但仅限于整个数组中的这两个元素。
或者,如果难以理解我的意思,是否可以在答案框中发布一段代码,在其中对2个字符串进行字母顺序排序?
注意:整行数据
(string Vardas) (char Fragmentas[CMax]) (int atitikme)
必须保持不变,只是该行中的位置必须不同,并按照我之前提到的规则进行排序。
输出应为:
Bailioji 3
Baltukas 3
Smarkuolis 1
编辑: 我的当前输出为:
Baltukas 3
Bailioji 3
Smarkuolis 1
P.s。该任务允许使用任何 C++ 相关的内容,无需创建或阅读任何其他文件。