【发布时间】:2014-03-18 07:11:40
【问题描述】:
我有一个如下所示的数组:-
a[53]={ARPNUM-T,
OR1PATTYP-T,
IVNUM-T,
IVDESC-T,
ORDEPT-T,
ARPNAME-T,
ARGNAME-T,
ARPATADDR1-T,
ARPATCITY-T,
ARPATSTATE-T,
ARPATZIP-N,
ARSEX-T,
ARBIRTH-N,
ARSSN-T,
ARMARRY-T,
ARADMDT-N,
ARDISDT-N,
ARPEMP-T,
ARPHY1-T,
ARPHYNM1-T,
ARMRNUM-T,
ARGUARSSN-T,
ARPHONE-T,
AREMPLYR-T,
ARADDR1-T,
ARSTATE-T,
ARZIP-N,
ARPATPHONE-N,
ARDIAG01-T,
ISSUBNAME-T,
ISCOMPCD-T,
ISCONAME-T,
ISCONTRAC-T,
ISGROUP-T,
ISPRIMARY-T,
ISCOADDR-N,
ISCOCITST-T,
ISPATREL-T,
ISCERTNO-T,
ISCOZIP-N,
ISSUBNAME-T,
ISCOMPCD-T,
ISCONAME-T,
ISCONTRAC-T,
ISGROUP-T,
ISPRIMARY-T,
ISCOADDR-N,
ISCOCITST-T,
ISPATREL-T,
ISCERTNO-T,
ISCOZIP-N,
ARCITY-T}
有一些重复的值,例如 ISSUBNAME-T,ISCOMPCD-T。
我需要将数组 a 填充到数组 b
其中重复值会以重复次数为后缀,
例如 - 如果 ISSUBNAME-T 重复 3 次,则 ISSUBNAME-T_3 。
我试过一个代码:-
for (int d = 1; d < 53; d++)
{
b[0] = a[0];
for (int k = 1; k < d; k++)
{
int count = 0;
//b[d] = a[d];
if (a[d] == a[d - k])
{
count++;
if (count > 0)
{
b[d] = a[d] + "_" + count + "";
}
else
{
b[d] = a[d];
}
//Console.WriteLine(count);
}
//Console.WriteLine(count);
}
//Console.WriteLine(count);
}
但它没有显示正确的输出。
【问题讨论】:
-
“它没有显示正确的输出”永远是不够的信息。它做什么?如果您创建一个简短但完整的程序来演示该问题(我建议使用较小的输入)并格式化您的代码更具可读性,那么帮助您也会容易得多。
-
对不起数组的长度和一切..我的问题是数组的元素是否重复程序应该计算它的重复次数并将其后缀到另一个数组“b”,这样如果 1 个元素重复 3 次,则第一个重复的元素将是 element_1 和 element_2 、element_3 等等。
-
是的,但你还没有说你当前的代码实际上做了什么。你说过它不起作用,但这并没有描述它的作用。正如我之前所说,您可以使您的问题变得更好:修复格式,减少输入大小,并将其放在一个简短但完整的程序的形式中。然后,您可以显示所需的输出和当前的输出。
-
当然我现在就在做...