我有一个数组来保存每个元素的数量。
int total[5] = {2,3,4,5,6}
int num = 5; //array total has 5 elements
这意味着我们在原始数组中有2个元素0,3个元素1' s。我们并不担心原始数组,因为我已经有了一个代码来保存元素的数量。
我需要一个嵌套的for循环来创建一个如下所示的新数组:
array[0] = 1;
array[1] = 1;
array[2] = 5;
array[3] = 5;
array[4] = 5;
array[5] = 9;
array[6] = 9;
array[7] = 9;
array[8] = 9;
等等。也就是说,我们在新数组中存储的值与" total"中的值一样多。阵列。值1,5,9等存储在名为element的数组中。到目前为止我有这样的事情:
for (int i = 0; i < num; i++){
for (int j = 0; j < total[i]; j++){
array[i + j] = element[i];
}
}
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
一个简单的解决方案(虽然不一定优雅)是执行以下操作:
int count = 0;
for (int i = 0; i < num; i++){
for (int j = 0; j < total[i]; j++){
array[count] = element[i];
count++;
}
}
那么你不必担心试图弄清楚你在阵列的位置。
答案 1 :(得分:0)
您需要跟踪元素的数量:
int sum = 0;
for (int i = 0; i < num; i++){
for (int j = 0; j < total[i]; j++){
array[sum + j] = element[i];
}
sum += total[i];
}