Как мне сложить все индексы в определенной строке в 2d массиве? - PullRequest
0 голосов
/ 25 марта 2019

Я создал массив для хранения и вычисления параметров для «калькулятора траектории силы». Массив принимает количество путевых точек, расстояний и заголовков. Затем я использую функции для вычисления x, y направлений и векторов. Кроме того, я использую функции для расчета количества топлива, оставшегося в запасе, и расстояния, которое самолет может преодолеть с запасным топливом. Наконец, я должен вывести всю информацию для каждой путевой точки, включая номер путевой точки, курс, величину, векторные расстояния и расход топлива. Пока что все работает хорошо, кроме топливных расчетов. Он только рассчитывает запасы топлива до последней путевой точки в массиве. Мне нужно, чтобы подвести итог расходу топлива по каждой точке пути. Я включу случай с выходом, а также функции топлива. Заранее спасибо

     case 'V': case 'v':

     for (j = 0; j < n; j++)
     {
      printf("\nThe waypoint # %d. \n", j + 1);
      printf("The heading is %-5.2lf degrees.\n", arr[1][j]);
      printf("The magnitude to this waypoint is %-5.2lf meters.\n", 
      arr[0][j]);
      printf("The plane will go %-5.2lf meters due %c.\n", 
      fabs(arr[2][j]), (int)arr[3][j]);
      printf("The plane will go %-5.2lf meters due %c.\n", 
      fabs(arr[4][j]), (int)arr[5][j]);
      printf("The plane will consume %-5.2lf liters of fuel.\n", 
      ((fabs(arr[2][j]) + fabs(arr[4][j])) / 570));
      printf("-------------------------------------------------- 
      \n");
     }
      break;

    double fuel(double arr[][20], int n)
    {
     double total = 0;
     int i, j;

     for(i = 0; i < 6; i++)
     {
       for(j=0; j < n; j++)

        total = (fabs(arr[2][j]) + fabs(arr[4][j]));
        total = total / 1000;
        total = total / .57;
        total = 10523 - total;
      }

return total;

    }

//calculate distance in km remaining until fuel zero
 double zero_fuel(double arr[][20], int n)
 {
  double empty = 0.0;
  double total = 0.0;
  int i, j;

   for(i = 0; i < 6; i++) 
   {
     for(j=0;j<n; j++)
        total = (fabs(arr[2][j]) + fabs(arr[4][j]));
        total = total / 1000;
        total = total / .57;
        total = 10523 - total;

        empty = total * 0.57;

    }

return empty;

}

1 Ответ

0 голосов
/ 25 марта 2019

Вы не добавляете каждый элемент массива, а только устанавливаете сумму, равную последней сумме. Вы должны изменить строку

total = (fabs(arr[2][j]) + fabs(arr[4][j]));

до

total += (fabs(arr[2][j]) + fabs(arr[4][j]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...