Функция для вычисления максимального значения из трех элементов - C (СИ)

  1. Помогите пожалуйста. Написать функцию для вычисления максимального значения из 3-х элементов.


textual

Код к задаче: «Функция для вычисления максимального значения из трех элементов - C (СИ)»

#include <stdio.h>
#define max(a, b) ( (a) > (b) ? (a) : (b) )
 
int main(void) {
    int a, b, c;
 
    while ( printf("3 numbers: ") && scanf("%d %d %d", &a, &b, &c) == 3 )
        printf("The biggest is %d\n", max(max(a, b), c));
 
    return 0;
}

СДЕЛАЙТЕ РЕПОСТ

14   голосов, оценка 4.357 из 5



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

  1. Описать рекурсивную функцию root(f, a, b, eps), которая методом деления отрезка пополам находит с точностью eps>0 корень уравнения f(x)=0 на отрезке [a,b]. Нужно три функции. Первая - ввод значений, вторая - подсчет весь, третья - вывод значений.

  1. Написать функцию md(x, y) для получения остатка от деления целочисленных операндов.

  1. Помогите пожалуйста описать рекурсивную функцию root(f,a,b,eps), которая методом деления отрезка пополам находит с точностью eps корень уравнения f(x)=0 на отрезке [a,b]. (Считать, что eps>0, a>b, f(a)*f(b)<0). Найти с ее помощью один корень уравнения sin(x)=0.5

  1. Написал функцию возведения в степень для положительных чисел, но, к сожалению, не до конца понял, как она осуществляет подсчет. Правильно ли я понимаю, что счет начинается, когда b становится равной единице? Если это так, то а умножается на выражение power(a,b-1), но каким образом происходит вычисление в этой точке?C1 2 3 4 5 6 7 8 9 10 11 12 double power(float a, int b) {     int i = b;     float k = 1;               if (b > 0)             {                   k=a*power(a, b-1);                     } return k; }Добавлено через 4 минуты power(a, b-1) при b = 1 принимает значение 1? и дальше рекурсия идет вверх, домножаясь на а каждый раз? по какой причине функция при последнем вызове принимает такое значение? (если это рассуждение верно).

  1. Назначение: вычисляет десятичное значение целого числа по заданной строке символов s, который является записью этого числа в двоичной системе счисления. Постановка задачи В соответствии с вариантом задания составить функцию для обработки символьных строк и программу для проверки работоспособности функции. За образец можно брать библиотечные функции обработки строк языка С, но не использовать их в своей функции. При выполнении 1-го задания необходимо: 1. Строки для тестирования функции вводить в главной программе с клавиатуры. 2. Предусмотреть обработку ошибок в задании параметров и особые случаи. 3. Разработать два варианта заданной функции с использованием: а) индексированных массивов; б) указателей.

  1. Помогите пожалуйста. Использовать стандартные функции и арифметические операторы; изучить операторы отношения и присваивания, логические операции, условный оператор и оператор-переключатель; научиться использовать в программах операторы цикла. Написать программы на изученные темы. Для заданного x вычислить значение функции y=ctg x , где x (0, 2 )

  1. Здравствуйте. Есть проблемка, надеюсь поможете. Есть программа, содержащая несколько функций работы с массивами . Все функции работают нормально, кроме двоих(Внизу кусок кода). Если последней функции нет(закоментированна), то min_element работает правильно , если есть- из двух значений функций (min_element,sr_value) выводится одно и неверное. Плиз помогите , в чем ошибка C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  void min_element (int mass[])       { int i;       int min=0;         for (i = 0; i < N; i++)  {    if (mass[min] > mass[i])        min = i;}        printf("%d",mass[min]);       }      void sr_value (int mass[])     { int sum=0; float sr=0;     int i;           for (i=0;i

  1. Не успеваю сделать такое задание для шараги, если кто может помочь хотя бы советом или напутствием, как нужно делать или где почитать про это, или каким-то примером кода ,ибо даже не понимаю , что должно из этого получиться. спасибо.

  1. Есть bstInsert, PKL и bstRemoveC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 int main(void) {     int i, maxBFS;     char cmd[255], arg;     BstNode *root = NULL;       do     {         printf("Введите команду (h - справка):\n");         scanf("%s", cmd);           if (cmd[0] == '+')         {             scanf(" %c", &arg);               if (arg >= 'A' && arg <= 'Z')             {                 bstInsert(&root, arg - 'A');                   printf("Узел %c вставлен\n", arg);             }             else                 printf("Ошибка. Введена недопустимая буква\n");         }         else if (cmd[0] == '-')         {             scanf(" %c", &arg);               if (arg >= 'A' && arg <= 'Z')             {                 if (bstRemove(&root, arg - 'A'))                     printf("Узел %c удален\n", arg);                 else                     printf("Узел %c не найден\n", arg);             }             else                 printf("Ошибка. Введена недопустимая буква\n");         }         else if (cmd[0] == 'p')         {             PKL(&root, 0);         }                 else if (cmd[0] == 't')         {printf("HI\n");}                 else if (cmd[0] == 'h')         {             printf("================================\n");             printf("Список команд:\n");             printf("+ CHAR - вставить узел CHAR (A, B, ..., Z) в двоичное дерево\n");             printf("- CHAR - удалить узел CHAR из двоичного дерева\n");             printf("p - распечатать двоичное дерево\n");             printf("t - выполнить задание над двоичным деревом\n");             printf("q - завершить программу\n");             printf("================================\n");         }         else if (cmd[0] != 'q')         {             printf("Неизвестная команда\n");         }     }     while (cmd[0] != 'q');       bstDestroy(&root);       return 0; } void PKL(BstNode **node, const int level) {     if (*node == NULL)     {         printf("Дерево пусто\n");           return;     }       if ((*node)->_right != NULL)         PKL(&(*node)->_right, level + 1);       printf("%*s%c\n", level * 2, "", (*node)->_key + 'A');       if ((*node)->_left != NULL)         PKL(&(*node)->_left, level + 1); }C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 BstNode *bstInsert(BstNode **node, const kLetters key) {     if (*node == NULL)     {         *node = (BstNode *)malloc(sizeof(BstNode));           (*node)->_key = key;         (*node)->_left = NULL;         (*node)->_right = NULL;           return *node;     }     else if ((*node)->_key == key)         return *node;     else if (key < (*node)->_key)         return bstInsert(&(*node)->_left, key);     else         return bstInsert(&(*node)->_right, key); }     int bstRemove(BstNode **node, const kLetters key) {     BstNode *repl = NULL, *parent = NULL, *tmp = *node;       while (tmp != NULL && tmp->_key != key)     {         parent = tmp;           if (key < tmp->_key)             tmp = tmp->_left;         else             tmp = tmp->_right;     }       if (tmp == NULL)         return 0;       if (tmp->_left != NULL && tmp->_right == NULL)     {         if (parent != NULL)         {             if (parent->_left == tmp)                 parent->_left = tmp->_left;             else                 parent->_right = tmp->_left;         }         else             *node = tmp->_left;           free(tmp);           tmp = NULL;     }     else if (tmp->_left == NULL && tmp->_right != NULL)     {         if (parent != NULL)         {             if (parent->_left == tmp)                 parent->_left = tmp->_right;             else                 parent->_right = tmp->_right;         }         else             *node = tmp->_right;           free(tmp);           tmp = NULL;     }     else if (tmp->_left != NULL && tmp->_right != NULL)     {         repl = tmp->_right;           if (repl->_left == NULL)             tmp->_right = repl->_right;         else         {             while (repl->_left != NULL)             {                 parent = repl;                 repl = repl->_left;             }               parent->_left = repl->_right;         }           tmp->_key = repl->_key;           free(repl);           repl = NULL;     }     else     {         if (parent != NULL)         {             if (parent->_left == tmp)                 parent->_left = NULL;             else                 parent->_right = NULL;         }         else             *node = NULL;           free(tmp);           tmp = NULL;     }       return 1; }   void bstDestroy(BstNode **node) {     if (*node == NULL)         return;       if ((*node)->_left != NULL)         bstDestroy(&(*node)->_left);         if ((*node)->_right != NULL)         bstDestroy(&(*node)->_right);       free(*node);       *node = NULL; }все это для C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 typedef enum _kLetters {     A = 0, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z } kLetters;   typedef struct _BstNode {     kLetters _key;     struct _BstNode *_left;     struct _BstNode *_right; } BstNode;   BstNode *bstInsert(BstNode **node, const kLetters key); int bstRemove(BstNode **node, const kLetters key); void bstDestroy(BstNode **node);А нужно тоже самое дляC1 typedef char _kLetters