Написание функций вычисления характеристик геометрических фигур в языке Си

Рейтинг: -1Ответов: 1Опубликовано: 14.04.2023

Всем привет! Сейчас я решаю задачу: вычисление характеристик геометрических фигур за пределами функции main c использованием самописных функций. По условиям задачи необходимо вычислить характеристики следующих фигур:

1. Area of circle;          // площадь окружности

2. Cricumference of circle; // длина окружности

3. Area of square;          // площадь квадрата

4. Area of rectangle        // площадь прямоугольника

Мой код:


#include <stdio.h>
#include <math.h>

const double PI = 3.1419526;

double area_of_circle(double diameter1 = 5.6);
double circumference(double radius = 7.0);
double area_of_square(double side_of_square = 10.0);
double area_of_rectangle(double length = 12,  double width = 77);

int main(void)
{

 /* вычисление площади окружности */

    printf("The diameter of the circle is %.1f\nPI is %.5f\narea of the circle %.2f\n\n", diameter1,area_of_circle);

    /* вычисление длины окружности */

    printf("The diameter of the circle is %.1f\nPI is %.5f\ncircumference of the circle %.2f\n\n", diameter,circumference);

    /* вычисление площади квадрата */

    printf("The area of the square is %.1f\nthe side of the square %.2f\n\n",
           area_of_square,side_of_square);

    /* вычисление площади прямоугольника */

    printf("The area of the rectangle is %.1f\nthe length is %.2f\nthe width is %.2f\n", area_of_rectangle, length, width);

    return 0;
}

    double area_of_circle(double diameter)
    {
        return (PI*pow(diameter, 2.0))/4;
    }

    double circumference(double radius)
    {
        return 2*PI*radius;
    }

    double area_of_square(double side_of_square)
    {
        return pow(side_of_square, 2);
    }

    double area_of_rectangle(double length,  double width)
    {
        return length*width;
    }

Я только начинаю изучать язык Си.Подскажите мне пожалуйста,где я мог допустить ошибку.

Ответы

▲ 2

Передавайте в printf не сами функции, а результаты их работы. Типа, не

printf("The diameter of the circle is %.1f\nPI is %.5f\narea of the circle %.2f\n\n",
       diameter1,area_of_circle);

а

printf("The diameter of the circle is %.1f\nPI is %.5f\narea of the circle %.2f\n\n",
       diameter1,area_of_circle(diameter1));

Где, само собой, diameter1 — переменная, которая до вывода должна быть объявлена как имеющая тип double, а потом считанная...

И поскольку у вас используется тип double, то не %.1f и т.п., а %.1lf...