0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 11
1

Функция и возврат значений

07.04.2015, 19:27. Показов 589. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Тут задание дали: Вычислить Z=(S1+S2)/(K1*K2), где S1 и K1 - сумма и количество положительных элементов массива X(N); S2 и K2 - сумма и количество положительных элементов массива Y(M).

Пытался сделать по нормальному, но я не понял как возвращать значения, оставил void.
Сделал фактически линейно, но в функции. А результат выдаёт не дробный, хотя Double Z;

Кому времени не жалко, напишите пожалуйста как правильно:

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<locale.h>
#include<ctime>
#include<iomanip>
using namespace std;
//ff
void zd2(int m[], int mm[], int n)
    { srand(time(0));
        int i,kf1=0,sf1=0,kf2=0,sf2=0;
        double z;
        //////////////////////////////////////
        for(i=0;i<n;i++)
        { 
            m[i]=rand()%10-4;
        cout<<m[i]<<" ";
        if(m[i]>0)
        {kf1+=1; sf1=sf1+m[i];}
        
        } cout<<endl;
        //////////////////////////////////////
        
        /////////////
        cout<<"Summa= "<<sf1<<"  "<<"Kolvo="<<"  "<<kf1<<endl;
        //////////////////////////////////////
        //////////////////////////////////////
        for(i=0;i<n;i++)
        { 
            mm[i]=rand()%10-4;
        cout<<m[i]<<" ";
        if(mm[i]>0)
        {kf2+=1; sf2=sf2+mm[i];}
        
        } cout<<endl;
        //////////////////////////////////////
        
        /////////////
        cout<<"Summa= "<<sf2<<"  "<<"Kolvo="<<"  "<<kf2<<endl;
 
        z=(sf1+sf2)/(kf1*kf2);
        cout<<endl;
        cout<<"Z = "<<z;
}
 
//ff
void main(){
int n=5,m=5;
int x[50], y[50];
 
zd2(x,y,n);
cout<<endl;
system("PAUSE");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2015, 19:27
Ответы с готовыми решениями:

Возврат значений float
Как вернуть значения переменных которые были инициализированы в другой функции и которые можно...

Возврат нескольких значений из функции
Здравствуйте, Подскажите пожалуйста, как можно передать из функции 2 результата, например, в...

Инициализация класса, возврат значений
Сама задача: Реализовать класс Rectangle. Класс должен хранить координаты, а так же длину и ширину...

Возврат из функции двух значений
в массиве нужно выбрать минимально и максимально значения, а затем их местами поменять. чтоб...

7
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
07.04.2015, 20:01 2
C++
1
z = static_cast<double>(sf1+sf2)/(kf1*kf2);
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
07.04.2015, 20:05 3
Цитата Сообщение от JaegerF Посмотреть сообщение
сумма и количество положительных элементов массива X(N);
прям таки напрашивается структура из двух полей, сумма и количество
1
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 11
07.04.2015, 20:39  [ТС] 4
Я понял, но просто не понял как такое сделать. По идее функция "забить массив", и функция "сумма и количество",
ну или для одного массива . Но как вернуть значения S1,S2 которое например S, и K1,K2, которое K?

Там функция random(int m[], int n)
Тут легко, забили, присвоило, тип void.

А функцию kolsum(int mm[], int n)
Входящих параметров 2.
Находим тут сумму и количество через циклы.
Ну нашёл. А вот вывести как? Чтобы была 1 функция, и можно было из функции получить S1, S2, K1, K2?
Понимаю по извратски написал, но никак по другому не получилось...
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
07.04.2015, 20:46 5
Цитата Сообщение от JaegerF Посмотреть сообщение
А функцию kolsum(int mm[], int n)
Входящих параметров 2.
например так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct CountSum
{
int sum;
int count;
}
CountSum kolsum(int mm[], int n)
{
CountSum tmpStr;
tmpStr.sum=0;
tmpStr.count=0;
for(int i=0;i<n;i++)
{
  if(mm[i]>0)
  {
  tmpStr.sum+=mm[i];
  tmpStr.count++;
 }
}
return tmpStr;
}
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 11
07.04.2015, 22:27  [ТС] 6
У меня стало подчёркивать kolsum, tmpStr красным....

Может кого выбесит что я ракал такой, признаю, но если бы учитель/ница нормальный был,
я бы сюда не писал....извиняйте.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
07.04.2015, 22:31 7
Цитата Сообщение от JaegerF Посмотреть сообщение
У меня стало подчёркивать kolsum, tmpStr красным....
это я виноват, точку с запятой не поставил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct CountSum
{
int sum;
int count;
};//вот здесь
CountSum kolsum(int mm[], int n)
{
CountSum tmpStr;
tmpStr.sum=0;
tmpStr.count=0;
for(int i=0;i<n;i++)
{
  if(mm[i]>0)
  {
  tmpStr.sum+=mm[i];
  tmpStr.count++;
 }
}
return tmpStr;
}
0
Croessmah
07.04.2015, 23:30     Функция и возврат значений
  #8

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
это я виноват, точку с запятой не поставил
а всё от недосыпания ]:-> спать ночю надо, а не на форуме сидеть.

P.S. мне можно, я на работе :D

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2015, 23:30

Некорректный возврат значений из функции
В функции Main после вызова fillArrayLastSymbol выводятся не те элементы массива, которые были...

Возврат двух значений из метода
Доброго времени суток, господа. Столкнулся с проблемой: нужно возвратить два значения с одного...

Возврат нескольких значений из функции
У меня было задание в двух матрицах найти одинаковые элементы вывести их и их индексы. Сделать...

Возврат нескольких значений структурной переменной
Как добиться возврата значений типа sterling? Без возврата значения всё идеально, с возвратом...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru