Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
#1

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

24.06.2012, 16:51. Просмотров 529. Ответов 8
Метки нет (Все метки)

получается так, что сначала у меня идет функция int main(), потом int sum, и потом int maxx. Они получаются вложенными в int main(). Как сделать, чтобы они были не вложенными?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2012, 16:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать так, чтобы функции были не вложенными? (C++):

Файл: Как сделать так, чтобы числа в файл были прописаны не рандомно? - C++
Здраствуйте, дан код: #include "stdafx.h" #include <iostream> #include <fstream> #include <cstdlib> #include <ctime> ...

Как сделать так, чтобы из функции возвращались различные значения? - C++
Ребят, помогите. Имеется такой код, мне надо,чтобы из функции возвращались различные значения. Как это реализовать? #include...

Как сделать, чтобы числа были разные? - C++
Есть код: #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int rolldice (void); int...

Как сделать, чтобы при выводе на экран были пробелы - C++
#include <iostream> using namespace std; int main() { int sum = 0, val = 1; while (val <= 10) { sum += val; ++val; ...

Как сделать так чтобы переменная в описании одной функции была доступна в описании другой? - C++
Как сделать так чтобы переменная в описании одной функции была доступна в описании другой? Заранее спасибо.

Сделать так, чтобы функция возвращала как целые, так и дробные значения - C++
Задача: нужно найти среднее арифметическое чисел в одномерном массиве разных типов. В main() у пользователя спрашивается размер...

8
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
24.06.2012, 16:54 #2
Вылажите свой код сюда, хоть взглянуть то на него!! а то я мало представляю как оно там у вас с вашего описания!
0
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 16:55 #3
Julia9311, Вне мейна сделай. Фигурные скобни на что тебе дадены?)
0
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;
}
0
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
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;
}
Спасибку тыц)
1
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;
}
1
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.
0
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;
    }
}
1
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, спасибо) программа пошла
0
24.06.2012, 17:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2012, 17:32
Привет! Вот еще темы с ответами:

Как сделать ,чтобы строки двумерного массива были кратные двум? - C++
Как сделать ,чтобы строки двумерного массива были кратные двум?То есть когда я заполняю массив , первая строка заполняется во вторую , а...

при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"? - C++
Сабж g++ 4.5.0

Как сделать так,чтобы - C++
Собственно,здрасте. Собственно,я новичок в с++. В общем у меня возник вопрос: Сперва приведу пример,иначе не могу объяснить: int...

Преобразовать строку так, чтобы буквы каждого слова были остортированы по возрастанию - C++
Подскажите идею,как можно преобразовать строку так,чтобы буквы каждого слова были остортированы по возрастанию?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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