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

Как передать значение переменной из одной функции в другую функцию - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Act1v3
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 25
22.01.2014, 20:30     Как передать значение переменной из одной функции в другую функцию #1
нужно передать значение sum1 , sum2 , sum3 из каждой функции в главную . помогите , пожалуйста .
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
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
typedef  int Matrix[10][10];    //тип матриці
Matrix A;                           //вихідна матриця 
typedef  int MatrixB[10][10];   //тип матриці
MatrixB B;                          //вихідна матриця 
typedef  int MatrixC[10][10];   //тип матриці
MatrixC C;                          //вихідна матриця 
int n;              //кількість рядків і стовпчиків матриці
void input1(Matrix);                // генерація матриці1
void output1(Matrix);           // виведення матриці1 
void suma1(Matrix); 
void input2(MatrixB);               // генерація матриці2
void output2(MatrixB);          // виведення матриці2 
int suma2(MatrixB);
void input3(MatrixC);               // генерація матриці2
void output3(MatrixC);          // виведення матриці 2
void suma3(MatrixC);
//=============== головна функцiя ================ 
int main()
{   
cout<<"Input n: "; 
cin>>n; //ввести розмірність матриці            
cout << "\n";
input1(A);              
output1(A);         
cout << "\n";
suma1(A);   //сума1
input2(B);              
output2(B);         
cout << "\n";
suma2(B);   //сума2
input3(C);              
output3(C);         
cout << "\n";
suma3(C);   //сума3
cout << "\n";
cout << "Cреднее арифм. : " << (sum1+sum2+sum3)/3;
system("pause");
}
//============== генерація матриці =================
void input1(Matrix matr1)
{  //srand(time(NULL));
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
   matr1[i][j]=rand()%9;//генерація поточного елемента матриці
}
//=============== виведення матриці =================
void output1(Matrix matr1)
{   for (int i=0; i<n; i++)
{ for (int j=0; j<n; j++)
 cout<<setw(4)<<matr1[i][j];    //виведення елементів рядка
cout<<endl;                 //перехід на новий рядок
     }
}
//======== cума елементів заштрихованої частини  ========
void suma1(Matrix matr1)
{   int sum1=0;
    for(int i=0; i<n; i++){
        for(int j=0;j < n ; j++)
            if (i <=n/2. && (i >= j || (n - j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
            sum1+=matr1[i][j];
            int &sm1=sum1;
    }
    cout << "Sum:"<< sum1 << endl;              
}
void input2(MatrixB matr2)
{   //srand(time(NULL));
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
   matr2[i][j]=rand()%9;    //генерація поточного елемента матриці
}
//=============== виведення матриці =================
void output2(MatrixB matr2)
{   for (int i=0; i<n; i++)
{ for (int j=0; j<n; j++)
 cout<<setw(4)<<matr2[i][j];    //виведення елементів рядка
    cout<<endl;                 //перехід на новий рядок
     }
}
//======== cума елементів заштрихованої частини  ========
int suma2(MatrixB matr2)
{   int sum2=0;
    for(int i=0; i<n; i++){
        for(int j=0;j < n ; j++)
            if (i <=n/2. && (i >= j || (n - j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
            sum2+=matr2[i][j];
            int &sm2=sum2;
    }
    cout << "Sum:"<< sum2 << endl;          
    return sum2;
}
void input3(MatrixC matr3)
{  //srand(time(NULL));
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
   matr3[i][j]=rand()%9;    //генерація поточного елемента матриці
}
//=============== виведення матриці =================
void output3(MatrixC matr3)
{   for (int i=0; i<n; i++)
{ for (int j=0; j<n; j++)
 cout<<setw(4)<<matr3[i][j];    //виведення елементів рядка
    cout<<endl;                 //перехід на новий рядок
     }
}
//======== cума елементів заштрихованої частини  ========
void suma3(MatrixC matr3)
{   int sum3=0;
    for(int i=0; i<n; i++){
        for(int j=0;j < n ; j++)
            if (i <=n/2. && (i >= j || (n- j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
            sum3+=matr3[i][j];
    }
    cout << "Sum:"<< sum3 << endl;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 20:34     Как передать значение переменной из одной функции в другую функцию #2
Цитата Сообщение от Act1v3 Посмотреть сообщение
нужно передать значение sum1 , sum2 , sum3 из каждой функции в главную
C++
1
2
3
4
5
6
7
8
9
10
int suma1(Matrix matr1)
{   int sum1=0;
    for(int i=0; i<n; i++){
        for(int j=0;j < n ; j++)
            if (i <=n/2. && (i >= j || (n - j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
            sum1+=matr1[i][j];
            int &sm1=sum1;
    }
    return sum;             
}
Добавлено через 1 минуту
Цитата Сообщение от Act1v3 Посмотреть сообщение
int &sm1=sum1;
что это?
Act1v3
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 25
22.01.2014, 20:35  [ТС]     Как передать значение переменной из одной функции в другую функцию #3
попытка использовать ссылки . забыл удалить .
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
22.01.2014, 20:38     Как передать значение переменной из одной функции в другую функцию #4
Цитата Сообщение от Act1v3 Посмотреть сообщение
Как передать значение переменной из одной функции в другую функцию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int random()
{
    return 42;
}
 
void just_print(const int x)
{
    std::cout << x << std::endl;
}
 
int main()
{
    just_print(random()); // в функцию just_print передается результат работы функции random
}
Act1v3
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 25
22.01.2014, 20:45  [ТС]     Как передать значение переменной из одной функции в другую функцию #5
то , что вы написали понятно . а вот связь с моей задачей я уловить не могу ..
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
22.01.2014, 20:52     Как передать значение переменной из одной функции в другую функцию #6
Цитата Сообщение от Act1v3 Посмотреть сообщение
то , что вы написали понятно . а вот связь с моей задачей я уловить не могу ..
а ваш код читать невозможно из-за форматирования, так что ответил лишь в общих чертах.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 20:59     Как передать значение переменной из одной функции в другую функцию #7
Цитата Сообщение от Act1v3 Посмотреть сообщение
а вот связь с моей задачей я уловить не могу ..
если вы хотели посчитать ср. арифметическое сумм в main, тогда вот:
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
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
129
130
131
132
133
134
135
136
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
typedef  int Matrix[10][10];    //тип матриці
Matrix A;                           //вихідна матриця
typedef  int MatrixB[10][10];   //тип матриці
MatrixB B;                          //вихідна матриця
typedef  int MatrixC[10][10];   //тип матриці
MatrixC C;                          //вихідна матриця
int n;              //кількість рядків і стовпчиків матриці
void input1(Matrix);                // генерація матриці1
void output1(Matrix);           // виведення матриці1
int suma1(Matrix);
void input2(MatrixB);               // генерація матриці2
void output2(MatrixB);          // виведення матриці2
int suma2(MatrixB);
void input3(MatrixC);               // генерація матриці2
void output3(MatrixC);          // виведення матриці 2
int suma3(MatrixC);
//=============== головна функцiя ================
int main()
{
    cout<<"Input n: ";
    cin>>n; //ввести розмірність матриці
    cout << "\n";
    input1(A);
    output1(A);
    cout << "\n";
    suma1(A);   //сума1
    input2(B);
    output2(B);
    cout << "\n";
    suma2(B);   //сума2
    input3(C);
    output3(C);
    cout << "\n";
    suma3(C);   //сума3
    cout << "\n";
    cout << "Cреднее арифм. : " << (suma1(A)+suma2(B)+suma3(C))/3;
    system("pause");
}
//============== генерація матриці =================
void input1(Matrix matr1)
{
    //srand(time(NULL));
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
            matr1[i][j]=rand()%9;//генерація поточного елемента матриці
}
//=============== виведення матриці =================
void output1(Matrix matr1)
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
            cout<<setw(4)<<matr1[i][j];    //виведення елементів рядка
        cout<<endl;                 //перехід на новий рядок
    }
}
//======== cума елементів заштрихованої частини  ========
int suma1(Matrix matr1)
{
    int sum1=0;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j < n ; j++)
            if (i <=n/2. && (i >= j || (n - j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
                sum1+=matr1[i][j];
        int &sm1=sum1;
    }
    cout << "Sum:"<< sum1 << endl;
    return sum1;
}
void input2(MatrixB matr2)
{
    //srand(time(NULL));
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
            matr2[i][j]=rand()%9;    //генерація поточного елемента матриці
}
//=============== виведення матриці =================
void output2(MatrixB matr2)
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
            cout<<setw(4)<<matr2[i][j];    //виведення елементів рядка
        cout<<endl;                 //перехід на новий рядок
    }
}
//======== cума елементів заштрихованої частини  ========
int suma2(MatrixB matr2)
{
    int sum2=0;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j < n ; j++)
            if (i <=n/2. && (i >= j || (n - j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
                sum2+=matr2[i][j];
        int &sm2=sum2;
    }
    cout << "Sum:"<< sum2 << endl;
    return sum2;
}
void input3(MatrixC matr3)
{
    //srand(time(NULL));
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
            matr3[i][j]=rand()%9;    //генерація поточного елемента матриці
}
//=============== виведення матриці =================
void output3(MatrixC matr3)
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
            cout<<setw(4)<<matr3[i][j];    //виведення елементів рядка
        cout<<endl;                 //перехід на новий рядок
    }
}
//======== cума елементів заштрихованої частини  ========
int suma3(MatrixC matr3)
{
    int sum3=0;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j < n ; j++)
            if (i <=n/2. && (i >= j || (n- j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
                sum3+=matr3[i][j];
    }
    cout << "Sum:"<< sum3 << endl;
    return sum3;
}
Но код у вас ужасный
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 00:58     Как передать значение переменной из одной функции в другую функцию
Еще ссылки по теме:

C++ Как передать значение из одной функции в другую?
Передать значение из одной функции в другую функцию в связном списке C++
Как передать значение переменной из функции инт в функцию воид? C++

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

Или воспользуйтесь поиском по форуму:
Act1v3
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 25
23.01.2014, 00:58  [ТС]     Как передать значение переменной из одной функции в другую функцию #8
спасибо, со временем сам дошёл до этого
Yandex
Объявления
23.01.2014, 00:58     Как передать значение переменной из одной функции в другую функцию
Ответ Создать тему
Опции темы

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