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

Как сделать так, чтобы функции были не вложенными? - C++

Восстановить пароль Регистрация
 
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
24.06.2012, 16:51     Как сделать так, чтобы функции были не вложенными? #1
получается так, что сначала у меня идет функция int main(), потом int sum, и потом int maxx. Они получаются вложенными в int main(). Как сделать, чтобы они были не вложенными?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2012, 16:51     Как сделать так, чтобы функции были не вложенными?
Посмотрите здесь:

C++ найти максимальную по длине подпоследовательность так,чтобы элементы были в возрастающем порядке
C++ Преобразовать строку так, чтобы все буквы в ней были отсортированы по возрастанию
Как сделать так чтобы переменная в описании одной функции была доступна в описании другой? C++
Как сделать, чтобы при выводе на экран были пробелы C++
C++ Преобразовать строку так, чтобы буквы каждого слова были остортированы по возрастанию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
24.06.2012, 16:54     Как сделать так, чтобы функции были не вложенными? #2
Вылажите свой код сюда, хоть взглянуть то на него!! а то я мало представляю как оно там у вас с вашего описания!
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:55     Как сделать так, чтобы функции были не вложенными? #3
Julia9311, Вне мейна сделай. Фигурные скобни на что тебе дадены?)
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
24.06.2012, 16:56  [ТС]     Как сделать так, чтобы функции были не вложенными? #4
C++ (Qt)
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
28
29
30
31
32
33
34
35
36
#include "iostream.h"
#include "conio.h"
int main()
{
    int a[10][10];
    int i, j, n=10, m=10, sum=0, max=0, b=n-1, c=1;
    int *p;
    p=new int[n*m];
    cout<<"Vvedite elementi massiva\n";
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]= ";
            cin>>a[i][j];
        }
 
int sum()
{
int s;
for(i=0,j=b;i<c;i++,j++)
s+=a[i][j];
return s;
}
 
int maxx(int s, int max)
{
    return(max<sum)?sum:max;
}
 
while(b)
{
max=maxx(sum(), max);
c++;
--b;
}
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:58     Как сделать так, чтобы функции были не вложенными? #5
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
28
29
30
31
32
33
34
35
#include "iostream.h"
#include "conio.h"
int main()
{
    int a[10][10];
    int i, j, n=10, m=10, sum=0, max=0, b=n-1, c=1;
    int *p;
    p=new int[n*m];
    cout<<"Vvedite elementi massiva\n";
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]= ";
            cin>>a[i][j];
        }
while(b)
{
max=maxx(sum(), max);
c++;
--b;
}
}
int sum()
{
int s;
for(i=0,j=b;i<c;i++,j++)
s+=a[i][j];
return s;
}
 
int maxx(int s, int max)
{
    return(max<sum)?sum:max;
}
Спасибку тыц)
lamerr
9 / 9 / 1
Регистрация: 05.04.2012
Сообщений: 26
24.06.2012, 16:58     Как сделать так, чтобы функции были не вложенными? #6
C++ (Qt)
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
28
29
30
31
32
33
34
35
#include "iostream.h"
#include "conio.h"
int sum()
{
int s;
for(i=0,j=b;i<c;i++,j++)
s+=a[i][j];
return s;
}
 
int maxx(int s, int max)
{
    return(max<sum)?sum:max;
}
 
int main()
{
    int a[10][10];
    int i, j, n=10, m=10, sum=0, max=0, b=n-1, c=1;
    int *p;
    p=new int[n*m];
    cout<<"Vvedite elementi massiva\n";
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]= ";
            cin>>a[i][j];
        }
while(b)
{
max=maxx(sum(), max);
c++;
--b;
}
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
24.06.2012, 17:12  [ТС]     Как сделать так, чтобы функции были не вложенными? #7
все равно выдает ошибки в обеих программах(

Добавлено через 2 минуты
в обоих случаях одинаковые

C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(19) : error C2065: 'maxx' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(19) : error C2064: term does not evaluate to a function
C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(25) : error C2373: 'sum' : redefinition; different type modifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(6) : see declaration of 'sum'
C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(25) : error C2601: 'sum' : local function definitions are illegal
C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(33) : error C2373: 'maxx' : redefinition; different type modifiers
C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(33) : error C2601: 'maxx' : local function definitions are illegal
C:\Program Files\Microsoft Visual Studio\MyProjects\пробник\пробник.cpp(37) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
zuq
 Аватар для zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
24.06.2012, 17:19     Как сделать так, чтобы функции были не вложенными? #8
Код ужасен.. Что программа делать должна?
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
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <conio.h>
 
int a[10][10];
int i, j, n=2, m=10, sum=0, max=0, b=n-1, c=1;
 
int sumF(){
    int s(0);
    for(i=0,j=b;i<c;i++,j++)
    s+=a[i][j];
    return s;
}
 
int maxx(int s, int max) {
    return(max<s)?s:max;
}
 
int main() {
    int *p;
    p=new int[n*m];
 
    std::cout<<"Vvedite elementi massiva\n";
 
    for(i=0; i<n; i++) {
        for(j=0; j<m; j++) {
            std::cout<<"a["<<i<<"]["<<j<<"]= ";
            std::cin>>a[i][j];
        }
    }
 
    while(b){
        max=maxx(sumF(), max);
        c++;
        --b;
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2012, 17:32     Как сделать так, чтобы функции были не вложенными?
Еще ссылки по теме:

Как сделать ,чтобы строки двумерного массива были кратные двум? C++
C++ Как сделать так,чтобы
C++ Расположить элементы массива так, чтобы сначала были отрицательные и нули, а потом положительные

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

Или воспользуйтесь поиском по форуму:
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
24.06.2012, 17:32  [ТС]     Как сделать так, чтобы функции были не вложенными? #9
программа должна определять максимум среди сумм элементов диагоналей, параллельных главной диагонали. Сама программа у меня написана и работает, но теперь ее нужно оформить каждый ее пункт в виде функции, что я и пытаюсь здесь сделать.)

программа без функций
C++ (Qt)
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
28
29
30
31
32
33
34
35
36
37
38
39
#include "iostream.h"
#include "conio.h"
int main()
{
    int a[10][10];
    int i, j, n=10, m=10, sum=0, max=0, b=n-1, c=1;//объявление переменных
    //(i-индекс строки, j-столбца, n-кол-во строк, m-столбцов, сумма=0, максимум=0,
    //b=n-1-индекс, с-длина диагонали)
    int *p;
    p=new int[n*m];
    cout<<"Vvedite elementi massiva\n";
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"]= ";
            cin>>a[i][j];
        }
 while(b)
    {
        for(i = 0,j = b; i < c; i++, j++)//перемещаемся по диагонали, пока не закончится ее длина
        //(индекс столбца на единицу меньше кол-ва строк, индекс столбца не больше длины диагонали,
        //индексы строки и столбца увеличиваются на 1)
            sum += a[i][j];//сумма элементов диагонали
        if (max < sum)//если сумма больше максимума, то
        {
            max = sum;//максимум равен сумме
        }
       
        sum = 0;//сумма снова равна нулю
        c++;//размер диагонали увеличиваем на 1
        --b;//индекс уменьшаем на 1, пока он не будет равен нулю
    }   
    cout<<"Maximum= "<<max<<endl;
   return sum;//возвращение значения
return 0;
 getch();
}
}
Добавлено через 6 минут
zuq, спасибо) программа пошла
Yandex
Объявления
24.06.2012, 17:32     Как сделать так, чтобы функции были не вложенными?
Ответ Создать тему
Опции темы

Текущее время: 07:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru