Nano Hash - криптовалюты, майнинг, программирование

неопределенная ссылка, возвращающая статус выхода

Ошибка возвращается в строке 27 (строка, начинающаяся с «сборов»), в которой говорится «необъявленная ссылка (для calculateCharge, насколько я могу предположить), а в примечаниях компилятора говорится: «ld вернул 1 статус выхода». Я не могу на всю жизнь получить то, что нужно изменить.

float calculateCharge(float);

int main()
{
  printf("Hello world!\n");

  int car;
  int num_cars;
  float total_charges = 0;
  float total_hours = 0;

  printf("How many cars?\n\n");      //prompt
  scanf("%d", &num_cars);            //prompt

  float hours [num_cars + 1];        //declaring parallel arrays
  float charges [num_cars + 1];

  for (car=1; car<=num_cars; car++)
  {
      printf("How many hours for car #%d?", car);     //prompt
      scanf("%f", &hours[car]);                       //input hours
      charges [car] = calculateCharge(hours [car]);
      total_charges = total_charges + charges [car];
      total_hours = total_hours + hours [car];
  }
  printf("%s\t%s\t%s\t", "Car", "Hours", "Charge");

  for (car = 1; car <=num_cars; car++)
  {
       printf("\n%d\t%.2f\t%.2f\n", car, hours[car], charges[car]);
  }

printf("\n%s\t%.2f\t%.2f\n", "Total", total_hours, total_charges);

return 0;
}

  • Использование принудительной индексации с основанием один в ваших массивах только разочарует опытных программистов и запутает новичков. Пожалуйста, не делайте этого, используйте обычную нулевую базу, как и все остальные. 30.05.2016
  • Что касается вашей проблемы, где вы реализуете (определяете) функцию calculateCharge? Вы реализуете это где-нибудь? 30.05.2016
  • У вас есть декларация для calculateCharge(). Но где определение calculateCharge()? 30.05.2016
  • В дополнение к тому, что говорили другие, это ошибка компоновщика, а не ошибка компиляции. В вашем коде нет ничего синтаксически неправильного. Компоновщик в основном говорит: «Вы вызываете эту функцию calculateCharge, но я понятия не имею, где находится ее код. Вам нужно будет создать тело функции для calculateCharge или не использовать его. 30.05.2016
  • Спасибо всем за оперативные ответы. Я инженер-электрик по профессии, учусь на степень в области информационных технологий. Теперь я понимаю, что моя декларация не годится для определения. Любые идеи о том, как это решить? Не спрашивая ответа, просто подталкивая в правильном направлении. Всем привет. знак равно 30.05.2016
  • tutorialspoint.com/cprogramming/c_functions.htm 30.05.2016
  • Упс. Я вижу из своих заметок, что полностью исключил эту функцию. Еще раз всем спасибо! Заработало =) 30.05.2016
  • float calculateCharge (плавающие часы) { плавающий заряд; часы = потолок (часы); если (часы ‹=3) { заряд = 2,00; }else { заряд = 2,00 + (часы - 3) * 0,50; если (начисление › 10,00) { начисление = 10,00; } } плата за возврат; 30.05.2016
  • Вы вполне могли бы ответить на свой вопрос и даже принять этот ответ. 31.05.2016

Ответы:


1

Предполагая, что это весь ваш код, вы предоставили предварительное объявление того, что такое подпись calculateCharge, поэтому компилятор может сгенерировать код для ее вызова (как только он узнает, где находится фактическое определение), но вы не предоставили это фактическое определение.

30.05.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..