如何在多维数组中搜索单个行,然后对某些行中的每个单个元素执行计算
How to search for individual rows in multidimensional array then perform calculation for each individual element in certain rows
我目前正在使用桌子来查找与船只所持有的燃料总量相关的单个储罐中的相应燃料水平。该船目前有8个储罐,并将燃料分配给该船携带的总燃料的量。当给出总燃料量时,我需要在8个储罐中以总燃料量查找或填充燃料的位置。
我已经尝试搜索2D阵列以在给定时间查找相应的燃油箱,但是使用图表(2D数组(,我意识到我需要为左列使用索引(这是总燃料总数((,然后找到下边界和上限行。之后,我需要找到每个单个元素(燃油箱(的平均值。我能够发表数学的语句和硬核,但是我知道有一种递归方法可以搜索左列,找到给定燃料量的上和下键行,并在每个燃油箱中找到量。因此,如果我给出了IE的目标量。194568,我需要大约找到8个储罐中的燃料在哪里。
int main()
const int NUM_ROWS = 22;
const int NUM_COLUMNS = 9;
int arr[NUM_ROWS][NUM_COLUMNS] = {
{80000,4500,7500,11700,11700,0,0,0,9200},
{90000,4500,7500,13800,13800,0,0,0,10800 },
{100000,4500,7500,15900,15900,0,0,0,12400},
{110000,4500,7500,18200,18200,0,0,0,13200},
{120000,4500,7500,20400,20400,0,0,0,14400},
{130000,4500,7500,22000,23000,0,0,0,16000},
{140000,4500,7500,22000,26200,0,0,0,19600},
{150000,4500,7500,22000,29400,0,0,0,23200},
{160000,4500,7500,22000,32700,0,0,0,26600},
{170000,4500,7500,23200,35400,0,0,0,28800},
{180000,4500,7500,25300,37500,0,0,0,30400},
{190000,4500,7500,27400,39600,0,0,0,32000},
{200000,4500,7500,29500,41700,0,0,0,33600},
{210000,4500,7500,31800,44300,0,0,0,33800},
{220000,4500,7500,31800,44300,0,0,10000,33800},
{230000,4500,7500,31800,44300,0,3000,15000,35800},
{240000,4500,7500,31800,44300,0,8000,15000,40800},
{250000,4500,7500,31800,44300,0,8000,25000,40800},
{260000,4500,7500,31800,44300,0,8000,35000,40800},
{270000,4500,7500,31800,44300,0,8000,45000,40800},
{280000,4500,7500,31800,44300,0,14000,45000,44800},
{290000,4500,7500,31800,44300,0,18800,46000,49000}, };
int key;
cout << "Enter Fuel Amount:";
cin >> key;
if (key >= 80000 && key < 90000)
{
cout << "L/R_Ext = " << (arr[0][1] + arr[1][1]) / 2 << endl;
cout << "L/R_ Outbrd = " << (arr[0][2] + arr[1][2]) / 2 << endl;
cout << "L1 R4 = " << (arr[0][3] + arr[1][3]) / 2 << endl;
cout << "L2 R3 = " << (arr[0][4] + arr[1][4]) / 2 << endl;
cout << "Forward = " << (arr[0][5] + arr[1][5]) / 2 << endl;
cout << "Center = " << (arr[0][6] + arr[1][6]) / 2 << endl;
cout << "Mid = " << (arr[0][7] + arr[1][7]) / 2 << endl;
cout << "Aft = " << (arr[0][8] + arr[1][8]) / 2 << endl;
}
else if (key >= 90000 && key < 100000)
{
cout << "L/R_Ext = " << (arr[1][1] + arr[2][1]) / 2 << endl;
cout << "L/R_ Outbrd = " << (arr[1][2] + arr[2][2]) / 2 << endl;
cout << "L1 R4 = " << (arr[1][3] + arr[2][3]) / 2 << endl;
cout << "L2 R3 = " << (arr[1][4] + arr[2][4]) / 2 << endl;
cout << "Forward = " << (arr[1][5] + arr[2][5]) / 2 << endl;
cout << "Center = " << (arr[1][6] + arr[2][6]) / 2 << endl;
cout << "Mid = " << (arr[1][7] + arr[2][7]) / 2 << endl;
cout << "Aft = " << (arr[1][8] + arr[2][8]) / 2 << endl;
}
else if (key >= 100000 && key < 110000)
{
cout << "L/R_Ext = " << (arr[2][1] + arr[3][1]) / 2 << endl;
cout << "L/R_ Outbrd = " << (arr[2][2] + arr[3][2]) / 2 << endl;
cout << "L1 R4 = " << (arr[2][3] + arr[3][3]) / 2 << endl;
cout << "L2 R3 = " << (arr[2][4] + arr[3][4]) / 2 << endl;
cout << "Forward = " << (arr[2][5] + arr[3][5]) / 2 << endl;
cout << "Center = " << (arr[2][6] + arr[3][6]) / 2 << endl;
cout << "Mid = " << (arr[2][7] + arr[3][7]) / 2 << endl;
cout << "Aft = " << (arr[2][8] + arr[3][8]) / 2 << endl;
}
cout << "First row:n";
for (col = 0; col < NUM_COLUMNS; col++) {
cout << arr[0][col] << 't';
}
cout << "Second row:n";
for (col = 0; col < NUM_COLUMNS; col++) {
cout << arr[1][col] << 't';
}
cout << "nnSecond column:n";
for (row = 0; row < NUM_ROWS; row++) {
cout << arr[row][1] << 'n';
}
cout << "nnThird column:n";
for (row = 0; row < NUM_ROWS; row++) {
cout << arr[row][2] << 'n';
}
cout << "nnForth column:n";
for (row = 0; row < NUM_ROWS; row++) {
cout << arr[row][3] << 'n';
}
/*etc....
我期望有125648的目标时结果会搜索数组并将每个水箱中的燃料返回
int LR_Ext;
int LR_Outbrd;
int L1R4;
int L2R3;
int Forward;
int Center;
int Mid;
int Aft;
也许将它们分配给变量。
,而不是在每种if
情况下重复整个cout
语句,而是首先可以确定可以在显示代码中使用的index
:
int index = 0;
if (key >= 80000 && key < 90000)
index = 0;
else if (key >= 90000 && key < 100000)
index = 1;
else if (key >= 100000 && key < 110000)
index = 2;
else
// You should do some check if an invalid key is provided
// Now display
cout << "L/R_Ext = " << (arr[index][1] + arr[index+1][1]) / 2 << endl;
cout << "L/R_ Outbrd = " << (arr[index][2] + arr[index+1][2]) / 2 << endl;
cout << "L1 R4 = " << (arr[index][3] + arr[index+1][3]) / 2 << endl;
cout << "L2 R3 = " << (arr[index][4] + arr[index+1][4]) / 2 << endl;
cout << "Forward = " << (arr[index][5] + arr[index+1][5]) / 2 << endl;
cout << "Center = " << (arr[index][6] + arr[index+1][6]) / 2 << endl;
cout << "Mid = " << (arr[index][7] + arr[index+1][7]) / 2 << endl;
cout << "Aft = " << (arr[index][8] + arr[index+1][8]) / 2 << endl;
相关文章:
- 当我的 if 条件计算结果为 false 时,我的 else 块将不会执行
- OpenGL:在着色器中执行TexCoord计算,不好的做法?
- 在目标计算机上访问 POSIX 信号灯时出现可执行文件崩溃(SEGV_MAPERR)
- 如何以及何时使用 getline 函数执行计算?
- 在C++中对文件中的值单独执行计算
- 计算有多少人执行我的C++应用程序
- 在 Vulkan 中执行并行计算着色器?
- 代码的最优解,以便它可以执行高达 10^18 的计算
- C/C++ 在 32 位和 64 位计算机上可执行
- 使用 OpenMP 并行执行比串行执行 c++ 花费更长的时间,我计算执行时间是否正确?
- 当删除或删除[]被执行时,计算机会做什么?
- 如何从文本文件中获取值,然后用它们执行一些计算(例如乘以并显示它们)?
- 计算执行的 c++ 指令
- 如何在多维数组中搜索单个行,然后对某些行中的每个单个元素执行计算
- 优化三角矩阵计算的 CUDA 内核执行
- 计算 JSON 中的条目数并相应地执行代码
- OpenGL计算着色器中线程的执行顺序
- 计算执行函数的时间
- 如何以毫秒为单位计算执行时间
- 使用time()函数计算执行时间