Вывести с помощью функции максимальное из трех чисел - C (СИ)
Формулировка задачи:
Помогите с элементарной программой. Только начал изучать Си( всего пару дней)( 1 язык программирования) и никак не могу понять как реализовывается функция и как работать с указателями. Помогите люди добрые)
1. Задача (Вывести с помощью функции макс. элемент из 3). Что я делаю не так?
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void max3(int *a, int *b ,int *c);
{
if ((*a>*b) & (*a>*c))
printf("a = ",*a);
if ((*b>*a) & (*b>*c))
printf("b = ",*b);
if ((*c>*b) & (*c>*a))
printf("c = ",*c);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a,b,c;
printf("a= "); scanf("%d",&a);
printf("b= "); scanf("%d",&b);
printf("c= "); scanf("%d",&c);
max3(&a,&b,&c);
return 0;
}Решение задачи: «Вывести с помощью функции максимальное из трех чисел»
textual
Листинг программы
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void max3(int *a, int *b ,int *c);
{
if ((*a>*b) && (*a>*c))
printf("a = ",*a);
if ((*b>*a) && (*b>*c))
printf("b = ",*b);
if ((*c>*b) && (*c>*a))
printf("c = ",*c);
}
int _tmain(int argc, _TCHAR* argv[])
{
int a=10,b=20,c=30;
printf("a= "); scanf("%d",&a);
printf("b= "); scanf("%d",&b);
printf("c= "); scanf("%d",&c);
max3(&a,&b,&c);
getchar();
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем функцию
max3, которая принимает три указателя на целочисленные переменные - Внутри функции сравниваем значения переменных и выводим наибольшее на экран
- В главной функции программы объявляем три целочисленные переменные
a,bиcи инициализируем их значениями 10, 20 и 30 соответственно - Запрашиваем у пользователя новые значения для переменных
a,bиcс помощью функцииscanf - Вызываем функцию
max3передавая ей адреса переменныхa,bиc - Программа ожидает ввода символа для подтверждения корректности введенных значений
- В конце программы вызывается функция
getcharдля получения этого символа