Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Garret192
1 / 1 / 0
Регистрация: 21.10.2009
Сообщений: 84
#1

Функции - C++

26.02.2010, 17:07. Просмотров 293. Ответов 3
Метки нет (Все метки)

Привет всем. Хочу разобраться в функциях, но я в них профан, если можно обьясните что да как и главное как это оформлять.
Например нужно найти максимальный элемент.
Я пытался что-то изобразить но выдаётся неимоверное количество ошибок.
C++
1
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
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
const n=99;
void f1(int a[n],int,int,int);
main()
{
 int a[n],n,i;
 cout<<"Vvedi n "<<endl;
 cin>>n;
 for(i=0;i<n;i++)
 a[i]=rand();
 for(i=0;i<n;i++)
 cout<<a[i]<<' ';
 cout<<endl;
 f1(a[i],i,n,max);
 cout<<"max = "<<max<<endl;
 system ("pause");
 return 0;
}
void f1(int a[n],int i, int n,int max)
{
 max=0;
 for(i=0;i<n;i++)
 if(a[i]<a[i+1])
 a[i+1]=max;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2010, 17:07     Функции
Посмотрите здесь:

Функции. Построить матрицу из функции C++
Ускорение функции расчета автокорреляционной функции C++
C++ Функции. Построить матрицу из функции
А почему ошибка, что функции print и read не определены в функции main()? C++
Вычислить где значение функции меняет знак(отделение корней функции) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
26.02.2010, 17:15     Функции #2
Garret192,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int max(int *arr, int N)
{
    int m = *arr;
    for (int i = 0 ; i < N ; i++)
        if (arr[i] > m) m = arr[i];
    return m;
}
 
int main()
{
    int arr[] = {1,3,13,4,5,10,4};
    std::cout << max(arr, sizeof(arr) / sizeof(*arr));
 
    return 0;
}
ну так можно

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <algorithm>
 
template <typename T, const size_t N> inline T _max(const T (&arr)[N])
{
    return *std::max_element(arr, arr+N);
}
 
int main()
{
    const int arr[] = {1,13,2,3,5,2,3};
    std::cout << _max(arr) << std::endl;
 
    return 0;
}
ну или так
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.02.2010, 17:18     Функции #3
Garret192, если ты хочешь разобраться с функциями, то стоит взять в руки литературу, посвященную языку C++, благо такой литературы море. А уж если что-то будет не понятно, то обращаться на форум.
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
26.02.2010, 17:18     Функции #4
Все у тебя неплохо, окромя одного.
В С аргументы передаются по значению, т.е. max НЕ ВОЗВРАЩАЕТСЯ в главную
Значит надо передать ссылку на max
f1(....... int *);
а вызов f1(...... &max);
Код
[COLOR=#0000ff]void[/COLOR] f1[COLOR=#008000]([/COLOR][COLOR=#0000ff]int[/COLOR] a[COLOR=#008000][[/COLOR]n[COLOR=#008000]][/COLOR],[COLOR=#0000ff]int[/COLOR] i, [COLOR=#0000ff]int[/COLOR] n,[COLOR=#0000ff]int[/COLOR] *max[COLOR=#008000])[/COLOR]
[COLOR=#008000]{[/COLOR]
  *max[COLOR=#000080]=[/COLOR][COLOR=#0000dd]0[/COLOR][COLOR=#008080];[/COLOR]
 [COLOR=#0000ff]for[/COLOR][COLOR=#008000]([/COLOR]i[COLOR=#000080]=[/COLOR][COLOR=#0000dd]0[/COLOR][COLOR=#008080];[/COLOR]i[COLOR=#000080]<[/COLOR]n[COLOR=#008080];[/COLOR]i[COLOR=#000040]++[/COLOR][COLOR=#008000])[/COLOR]
 [COLOR=#0000ff]if[/COLOR][COLOR=#008000]([/COLOR]a[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#000080]<[/COLOR]a[COLOR=#008000][[/COLOR]i[COLOR=#000040]+[/COLOR]1[COLOR=#008000]])[/COLOR]
 *max = a[COLOR=#008000][[/COLOR]i[COLOR=#000040]+[/COLOR]1[COLOR=#008000]][/COLOR][COLOR=#008080];  // Тут было перепутано[/COLOR]
[COLOR=#008000]}[/COLOR]
[COLOR=#008000][/COLOR]

Но Андрейка тоже прав
Yandex
Объявления
26.02.2010, 17:18     Функции
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru