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

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

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

Переделка под указатели - C++

11.01.2013, 12:40. Просмотров 242. Ответов 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
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int sum1(int, int, int, int, int);
int sum2(int, int, int, int, int);
int sum3(int, int, int, int, int);
void print(int, int, int);
 
int main()
{
 int a, b, c, d, e;
 cout<<"Enter 5 numbers"<< endl;
 cin>> a;
 cin>> b;
 cin>> c;
 cin>> d;
 cin>> e;
 print(sum1(a,b,c,d,e), sum2(a,b,c,d,e), sum3(a,b,c,d,e));
 return 0;
}
 
int sum1(int x1, int x2, int x3, int x4, int x5)
{
 return (x1*2 + x2*2 + x3*2 + x4*2 + x5*2);
}
 
int sum2(int x1, int x2, int x3, int x4, int x5)
{
 
 return(x1*4 + x2*4 + x3*4 + x4*4 + x5*4);
 
}
 
int sum3(int x1, int x2, int x3, int x4, int x5)
{
 
 return(x1*x1 + x2*x2 + x3*x3 + x4*x4 + x5*x5);
 
}
 
void print(int x1, int x2, int x3)
{
 if(&sum1> &sum2)
       maxsum = &sum1;
 
    if(&sum2 > &sum1)
        maxsum = &sum2;
 
    if(*sum3 > maxsum)
        maxsum = &sum3;
Нужно его переделать под использование адресов переменных и их вызов.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2013, 12:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переделка под указатели (C++):

Переделка под Visual C++ - C++
Здравствуйте. Небольшая программа, писалась под Линуксом, теперь требуется переделать её в Visual C++. Ссылка на исходники:...

Переделать под указатели - C++
Задание В заданном предложении найти пару слов, из которых одно является обращением другого. Программа готова, но просят переделать...

Переделать под указатели - C++
Помогите пожалуйста переделать задачу под указатели... :(вообще не получается... Заранее огромное спасибо.... int main() { int...

Переделать код под указатели - C++
Помогите пожалуйста переделать под указатели int main() { int i,dlina1=0; char txt; cout &lt;&lt; &quot;Vvedite vash text: &quot;; ...

Объясните как выделяется память под умные указатели - C++
Читаю книгу Праты, не могу понять этот абзац, а точнее применение операторов new и new и delete и delete с ними. Почему нельзя...

Обнулить кусок памяти (выделенной под указатели) по быстрому - C++
Есть хеш-таблица и есть кусок памяти под неё, нужно занулить изначально весь кусок памяти, но как можно быстрее, те хорошо бы использовать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
11.01.2013, 12:48 #2
Не знаю как через printf() написать. Напишу через cout:

C++
1
2
3
4
5
6
7
8
int sum1(int *x1, int *x2, int *x3, int *x4, int *x5)
{
    return (*x1 * 2 + *x2 * 2 + *x3 * 2 + *x4 * 2 + *x5 * 2);
}
 
...
 
cout << sum1(&a, &b, &c, &d, &e) << endl;
0
Klun
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 38
11.01.2013, 12:54  [ТС] #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
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
#include <iostream>
#include <stdlib.h>
#include <math.h>
 
using namespace std;
 
 
int f1(int*, int*, int*, int*, int*);
int f2(int*, int*, int*, int*, int*);
int f3(int*, int*, int*, int*, int*);
int f4(int*, int*, int*);
int main()
{
    int z, x, c, v, b, s1, s2, s3;
 
 
    cin>>z;
    cin>>x;
    cin>>c;
    cin>>v;
    cin>>b;
 
 
//*2
 
    s1= f1(&z, &x, &c, &v, &b);
 
//*4
 
 
    s2= f2(&z, &x, &c, &v, &b);
 
 
//^2
 
 
    s3= f3(&z, &x, &c, &v, &b);
 
 
 
 
 
    cout<<f4(&s1, &s2, &s3);
 
 
 
    return 0;
}
 
int f1(int*z, int*x, int*c, int*v, int*b){
int s1;
int a, s, d, f, g;
 
    a=*z*2;
    s=*x*2;
    d=*c*2;
    f=*v*2;
    g=*b*2;
    s1=a+s+d+f+g;
 
    return s1;
 
 
}
 
int f2(int*z, int*x, int*c, int*v, int*b){
int s2;
int a, s, d, f, g;
 
    a=*z*4;
    s=*x*4;
    d=*c*4;
    f=*v*4;
    g=*b*4;
    s2=a+s+d+f+g;
 
    return s2;
 
 
}
 
int f3(int*z, int*x, int*c, int*v, int*b){
int s3;
int a, s, d, f, g;
 
    a=*z**z;
    s=*x**x;
    d=*c**c;
    f=*v**v;
    g=*b**b;
    s3=a+s+d+f+g;
 
 
    return s3;
 
 
 
}
 
int f4(int*s1, int*s2, int*s3){
 
   int ms;
 
    if(*s1>*s2)
     ms=*s1;
    
 
    if(*s2>*s1)
     ms=*s2;
    
 
    if(*s3>ms)
     ms=*s3;
    
 
 
 return ms;
 
}
0
Ласковая Киса
82 / 8 / 1
Регистрация: 11.01.2013
Сообщений: 55
11.01.2013, 13:29 #4
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int sum1(int*, int*, int*, int*, int*);
int sum2(int*, int*, int*, int*, int*);
int sum3(int*, int*, int*, int*, int*);
void print(int, int, int);
 
int main()
{
 int a, b, c, d, e;
 cout<<"Enter 5 numbers"<< endl;
 cin>> a;
 cin>> b;
 cin>> c;
 cin>> d;
 cin>> e;
 print(sum1(&a,&b,&c,&d,&e), sum2(&a,&b,&c,&d,&e), sum3(&a,&b,&c,&d,&e));
 return 0;
}
 
int sum1(int* x1, int* x2, int* x3, int* x4, int* x5)
{
 return ((*x1)*2 + (*x2)*2 + (*x3)*2 + (*x4)*2 + (*x5)*2);
}
 
int sum2(int* x1, int* x2, int* x3, int* x4, int* x5)
{
 
 return((*x1)*4 + (*x2)*4 + (*x3)*4 + (*x4)*4 + (*x5)*4);
 
}
 
int sum3(int* x1, int* x2, int* x3, int* x4, int* x5)
{
 
 return((*x1)*(*x1) + (*x2)*(*x2) + (*x3)*(*x3) + (*x4)*(*x4) + (*x5)*(*x5));
 
}
 
void print(int x1, int x2, int x3)
{
 if(&sum1> &sum2)
       maxsum = &sum1;
 
    if(&sum2 > &sum1)
        maxsum = &sum2;
 
    if(*sum3 > maxsum)
        maxsum = &sum3;
Примерно так. Только вот непонял что вы хотите зделать в функции print такими условиями.

Возможно функция print должна иметь такой вид:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
void print(int x1, int x2, int x3)
{
    int maxsum;
 
    if(x1> x2)
       maxsum = x1;
 
    if(x2 > x1)
        maxsum = x2;
 
    if(x3 > maxsum)
        maxsum = x3;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2013, 13:29
Привет! Вот еще темы с ответами:

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; void min_max(int*pa, int*pb,...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.01.2013, 13:29
Ответ Создать тему
Опции темы

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