Выделить преобразование температур в отдельную функцию. (Керниган и Ритчи: Упражнение 1.15) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Немного сцитирую: Итак, мы имеем функцию power и главную функцию main, пользующуюся ее услугами, так что вся программа выглядит следующим образом:
Листинг программы
  1. #include <stdio.h>
  2. int power(int m, int n);
  3. /* тест функции power */
  4. int main()
  5. {
  6. int i;
  7. for (i = 0; i < 10; ++i)
  8. printf("%d %d %d\n", i, power(2,i), power(-3, i));
  9. return 0;
  10. }
  11. /* возводит base в п-ю степень; n >= 0 */
  12. int power(int base, int n)
  13. {
  14. int i, p; p = 1; for (i = 1; i <= n; ++i)
  15. p = p * base;
  16. return p;
  17. }
Определение любой функции имеет следующий вид: тип-результата имя-функции (список параметров, если он есть) { объявления инструкции } Вопросы: 1: Почему Первая часть программы не может отдельно работать от второй (или наоборот)? (ошибка на скриншоте) 2: Почему компилятор не ругается на то, что base не инициализирован (когда программа в исходном виде) и какой тогда должен получаться результат? 3: Почему в power 1 - стоит переменная m, если она нигде не используется? 4: Где здесь функция? Их 2 все-таки или это одно целое? (т.к. по отдельности работать не хочет) 5: Функция power подразумевает x^y (power (x,y) ), тогда почему p=p*base, если base это условно "х"? А вроде бы сказано, что base возводится в n-ую степень. 6: Одно из заданий в конце темы - Упражнение 1.15. Перепишите программу преобразования температур, выделив само преобразование в отдельную функцию. Существует программа:
Листинг программы
  1. #include <stdio.h>
  2. #include <iostream>
  3. /* печать таблицы температур по Фаренгейту и Цельсию для fahr = 0, 20, ..., 300 */
  4. int main()
  5. {
  6. int fahr, celsius; int lower, upper, step;
  7. lower = 0; /* нижняя граница таблицы температур */ upper = 300; /* верхняя граница */ step = 20; /* шаг */
  8. fahr = lower;
  9. setlocale(0, "");
  10. while (fahr <= upper)
  11. {
  12. celsius = 5 * (fahr - 32) / 9; printf("%d\t%d\n Значение", fahr, celsius); fahr = fahr + step;
  13. }
  14. }
Как это записать через функцию? Надеюсь это не сложно и вы поможете мне. Заранее спасибо

Решение задачи: «Выделить преобразование температур в отдельную функцию. (Керниган и Ритчи: Упражнение 1.15)»

textual
Листинг программы
  1. power(2,i)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы