Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Возврат структуры в качестве значения функции






     

     

    Переменные-структуры можно возвращать в качестве значения функции. Следующая функция принимает две структуры типа Worker и возвращает сотрудника с большей зарплатой:

     

    Worker getWellPaid(Worker w1, Worker w2) {

    return w1.salary > w2.salary? w1: w2;

    }

     

    Обратите внимание на то, что здесь используется сокращенная запись оператора if-else, эквивалентная такой конструкции:

     

    Worker getWellPaid(Worker w1, Worker w2) {

    if (w1.salary > w2.salary) {

    return w1;

    } else {

    return w2;

    }

    }

     

    При вызове функции getWellPaid() совместно с функцией printWorker()

     

    Worker director = {" Андрей", 30, 5000};

    Worker manager = {" Сергей", 35, 3000};

    printf(" Сотрудник\n\n");

    printWorker(getWellPaid(director, manager));

    printf(" \nЗарабатывает больше\n");

     

    получается следующий результат:

     

     

     

    Передача структуры в качестве аргумента функции

    Рассмотрим следующую задачу. Объявить структуру Point (Точка) с вещественными полями x, y и z, которые задают координаты этой точки в трехмерном пространстве. Написать функцию, которая принимает два аргумента типа Point и возвращает расстояние между ними.

     

    #include " stdafx.h"

    #include < iostream>

    using namespace std;

     

    struct Point {

    float x;

    float y;

    float z;

    };

     

    float sqr(float number) {

    return number*number;

    }

     

    float getDistance(Point p, Point q) {

    return sqrt(sqr(p.x-q.x) +

    sqr(p.y-q.y) +

    sqr(p.z-q.z));

    }

     

    int main() {

    Point p = {1, 2, 3};

    Point q = {2, 3, 4};

    cout < < getDistance(p, q)) < < endl;

    }






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.