【发布时间】:2012-06-10 21:12:04
【问题描述】:
任务是:
- 有2个数组
A(数值浮点型),B是一个字符数组。 A 填充了随机数。 - 让
A[i]表示与B 数组中的第i 个字符相关联的第i 个值。也就是说,每个唯一的Ai 都映射/关联到一个唯一的Bi。因此,如果有相似的 Ai,那么它们中的每一个都将依次与 B 中的相同字符相关联。 - 现在,有一个新数组
New_A由随机数填充,这些随机数可能与A 略有不同,或者少数数字可能完全相同。任务是根据以下假设创建一个字符数组 New_B: - 我们找到最小的欧几里得距离或
New_A[j]和A[i]之间的任何度量,这样给定New_A[j],来自B 的字符被分配到A[i] >=New_A[j](New_A[i] >= A[j]) 的位置。令small_A表示条件成立的最小A[j]的索引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;
}
【问题讨论】:
-
我已经编辑了这个问题并放了一个小例子。欧几里得距离和多维数组的使用纯属猜测。这个解释比遵循我的程序 sn-p 更好。感谢您的支持。
标签: c algorithm multidimensional-array implementation