任务是:
- 有2个数组
A
(数值浮点型),B
是一个字符数组。A 填充有随机数。 - 让
A[i]
表示与 B 数组中的第 i 个字符相关联的第 i 个值。也就是说,每个唯一的 Ai 都映射/关联到一个唯一的 Bi。因此,如果有相似的 Ai,那么它们中的每一个都将依次与 B 中的相同字符相关联。 - 现在,有一个
New_A
由随机数填充的新数组,这些随机数可能与 A 的随机数略有不同,或者少数数字可能完全相同。任务是根据以下假设创建一个字符数组 New_B: - 我们找到最小的欧几里得距离或 和 之间的任何度量
New_A[j]
,A[i]
使得给定 aNew_A[j]
,来自 B 的字符被分配 whereA[i] >=New_A[j]
(New_A[i] >= A[j]
)。让表示条件成立small_A
的最小值的索引 j 。A[j]
- 例如,假设与 A[2] 关联的字符是 'd' 并且 A[2]=12.1 的值和 New_A[7]=11.9 的值。因为, A[2]> New_A[7],New_A[7] 被映射/关联到最初与 A[2] 关联的字符,即字符 'd' ;该条件不成立的其余部分保持不变。因此,总体效果/目标是根据New_A和A将字符数组B的变体创建成新的字符数组New_B。
现在,这就是我卡住的地方。如何找到最小的欧几里得值,然后如何根据条件分配 B 的字符。此外,数组的数据类型不同,如何进行关联。二维数组的使用纯属猜测,不能保证我是正确的。
float A[10];
char B[10] = {'c','d','e','f','g','h','i','j','k','l'} ;
for (i = 1; i <= 10; i++) {
Val_A[i] = rand();
Val_New[i] = rand();
A[i] = Val_A[i];
New_A[i][j] = Val_New[i];
}
max1 = New_A[0];
index1 = 0;
for (i = 1; i < 10; i++) {
if (A[i] > max1)
extract_char = B[i];
New_A[i][j] = extract_char;
//assigning corresponding character to New_A, which was assigned earlier to A
index1 = i;
}