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

Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов - C++

Восстановить пароль Регистрация
 
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 00:51     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #1
Вот я написал програмний код но немогу сделать вот это задание : номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов массива расположенных между первым отрицательное и вторым положительным элементом.
Помогите мне дописать эти две просьби в даную програму!




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
137
138
139
140
141
142
143
144
145
146
147
148
149
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "time.h"
 
using namespace std;
 
 
int arefm( int arr[], int n)
{
    int count = 0;
 
    double s = 0; 
 
    for ( int i = 0; i < n; i++ )
    {
        s += arr[i];
        count++;
    }
    double q = ( s / n );
    int ix = 0, d = 0;
 
    for (int i = 0; i < n; i++)    
    {
        if(arr[i] <= (q + 1) && arr[i] >= (q - 1)) 
            return arr[i];
 
    }
    return -1;
 
 
}
 
int raznica(int arr[], int n )
{
 
    int k = 0, d = 0, l1 = 0, l2 = 0 ;
    int razn = 0;
    for(int i = 0 ; i < n; i++)
    {
        if (arr[i] < 0)
        {
            k++;
            if( k == 1 )
                l1 = i;
        }
 
        if (arr[i] > 0)
        {
            d++;
            if( d == 2 )
                l2 = i;
        }
    }
 
    //razn = arr[l1];
    for (int i = l1 + 1; i < l2; i++)
        //razn = razn - arr[i];
            razn = arr[i] - arr[i+1];
 
    return razn;
 
}
 
void printMas(int arr[], int n)
{
    for( int i = 0; i < n; i++ )
    {
 
        cout << "A[" << i << "]" << " = " << arr[i]  << endl;
 
        //cout<<"\n";sum+=arr[i];
    }
    cout<<"\n";
}
 
void elements(int arr[], int n)
{
    int par=0 , npar=n-1;
    int *mas= new int[n];
    for( int i = 0; i < n; i++ )
    {
        if(arr[i]%2 == 0)
        {
            mas[par] = arr[i];
            par++;
        }
        else
        {
            mas[npar] = arr[i];
            npar--;
        }
    }
 
    for(int i = 0 ; i < n ; i ++)
        arr[i] = mas[i];
    //printMas(arr, n );
    delete [] mas;
}
 
 
 
 
int main()
{
    const int N = 10;
    int *arr = new int[N];
    int sum = 0;
    int arTwoDel = 0;
    srand(time(NULL));
    for ( int i =0; i <N; i++ )
    {
        arr[i] = rand() %10 -5;
    }
 
 
    printMas(arr, N);
 
    //elements(arr, N);
 
 
    elements(arr,N);
 
    printMas(arr, N);
    //cout << sum;
    //cout<<"\n";
    //arTwoDel = sum/N;
    //cout << arTwoDel;}
 
    //int f = arefm( arr, N );
    //
    //if(f==-1)
    //  //cout<<"NoFIND"<<endl;
    //print("NoFind", -1);
    //   //cout << " ix = " << f << endl;
    //print(" ix = ", f);
 
    //int raznc = raznica( arr, N );
    ////cout << "raznica = " << razn;
 
    //print("Raznica = ", raznc);
    //
 
 
    delete [] arr;
 
    getch();
    return 0;
}
 Комментарий модератора 
Пользуйтесь тегами форматирования кода.
Называйте темы осмысленно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2013, 00:51     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов
Посмотрите здесь:

Найти номера индексов, соответствующих среднеарифметическому значению среди положительных элементов массива C++
C++ номер элемента массива, ближайшего к среднему арифметическому его значений
Найти наименьшее положительное значение элемента массива и его номер. C++
C++ Найти номер элемента, значение которого близко к среднему значению массива
В одномерном массиве, состоящем из n целых элементов, 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
26.06.2013, 01:13     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #2
Цитата Сообщение от unikalen Посмотреть сообщение
номер элемента массива ближайшего к среднеарифметическому
Ищи такой элемент, который больше предыдущего, но меньше среднего.
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 11:27  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #3
@UnsKneD, помоги написать програму !
el_gato_de_Ch
35 / 35 / 1
Регистрация: 28.04.2013
Сообщений: 110
26.06.2013, 11:36     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #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
int arefm( int arr[], int n)
{
    int count = 0;
 
    double s = 0; 
 
    for ( int i = 0; i < n; i++ )
    {
        s += arr[i];
        count++;
    }
    double q = ( s / n );
    int ix = 0, d = 0;
 
    for (int i = 0; i < n; i++)    
    {
        if(arr[i] <= (q + 1) && arr[i] >= (q - 1)) 
            return arr[i];
 
    }
    return -1;
 
 
}
для чего нужны переменные count, ix, d ?
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
26.06.2013, 11:39     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void b(int *arr, int size) {
    int s=0;
    for(int x:arr)s+=x;
    int sr=s/size;
    int ind=0;
    int min=abs(arr[ind]-sr);
    for (int i=0; i<size; i++) {
        if(abs(arr[i]-sr)>min)continue;
        else {
            min=abs(arr[i]-sr);
            ind =i;
        }
    }
    int m=arr[ind];
    cout << "ind = " << ind << endl << "m = " << m << endl;
}

Не по теме:

Цитата Сообщение от unikalen Посмотреть сообщение
номер элемента массива ближайшего к среднеарифметическому его значению


Не по теме:

мб так

unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 12:00  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #6
@Belfegor, не компилирует вибивает ошибку вот в этой строке for(int x:arr)s+=x;
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
26.06.2013, 12:04     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #7
Цитата Сообщение от unikalen Посмотреть сообщение
for(int x:arr)s+=x;
замените на
C++
1
2
3
 for (int i=0; i<size; i++) {
        s+=srr[i];
    }
Добавлено через 51 секунду

Не по теме:

компилятор надо обновлять

unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 12:08  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #8
@Belfegor, а вот щас в этой строке int min=abs(arr[ind]-sr); оно sr ненаходит!
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
26.06.2013, 12:14     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #9
Цитата Сообщение от unikalen Посмотреть сообщение
а вот щас в этой строке int min=abs(arr[ind]-sr); оно sr ненаходит!
все оно находит
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void b(int *arr, int size) {
    int s=0;
    for (int i=0; i<size; i++) {
        s+=arr[i];
    }
    int sr=s/size;
    int ind=0;
    int min=abs(arr[ind]-sr);
    for (int i=0; i<size; i++) {
        if(abs(arr[i]-sr)>min)continue;
        else {
            min=abs(arr[i]-sr);
            ind =i;
        }
    }
    int m=arr[ind];
    cout << "ind = " << ind << endl << "m = " << m << endl;
}
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 12:25  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #10
@Belfegor, ну все компилируеца но толку 0 оно никаких операций не делает кроме той что есть!(
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
26.06.2013, 12:43     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #11
Кликните здесь для просмотра всего текста
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <iostream>
#include <ctime>
#include <cmath>
#include <cstdlib>
using namespace std;
 
 
int arefm( int arr[], int n) {
    int count = 0;
 
    double s = 0;
 
    for ( int i = 0; i < n; i++ ) {
        s += arr[i];
        count++;
    }
    double q = ( s / n );
    int ix = 0, d = 0;
 
    for (int i = 0; i < n; i++) {
        if(arr[i] <= (q + 1) && arr[i] >= (q - 1))
            return arr[i];
 
    }
    return -1;
 
 
}
void b(int *arr, int size) {
    int s=0;
    for (int i=0; i<size; i++) {
        s+=arr[i];
    }
    int sr=s/size;
    int ind=0;
    int min=abs(arr[ind]-sr);
    for (int i=0; i<size; i++) {
        if(abs(arr[i]-sr)>min)continue;
        else {
            min=abs(arr[i]-sr);
            ind =i;
        }
    }
    int m=arr[ind];
    cout << "ind = " << ind << endl << "m = " << m << endl;
}
int raznica(int arr[], int n ) {
 
    int k = 0, d = 0, l1 = 0, l2 = 0 ;
    int razn = 0;
    for(int i = 0 ; i < n; i++) {
        if (arr[i] < 0) {
            k++;
            if( k == 1 )
                l1 = i;
        }
 
        if (arr[i] > 0) {
            d++;
            if( d == 2 )
                l2 = i;
        }
    }
 
    //razn = arr[l1];
    for (int i = l1 + 1; i < l2; i++)
        //razn = razn - arr[i];
        razn = arr[i] - arr[i+1];
 
    return razn;
 
}
 
void printMas(int arr[], int n) {
    for( int i = 0; i < n; i++ ) {
 
        cout << "A[" << i << "]" << " = " << arr[i]  << endl;
 
        //cout<<"\n";sum+=arr[i];
    }
    cout<<"\n";
}
 
void elements(int arr[], int n) {
    int par=0 , npar=n-1;
    int *mas= new int[n];
    for( int i = 0; i < n; i++ ) {
        if(arr[i]%2 == 0) {
            mas[par] = arr[i];
            par++;
        } else {
            mas[npar] = arr[i];
            npar--;
        }
    }
 
    for(int i = 0 ; i < n ; i ++)
        arr[i] = mas[i];
    //printMas(arr, n );
    delete [] mas;
}
 
 
 
 
int main() {
    const int N = 10;
    int *arr = new int[N];
    int sum = 0;
    int arTwoDel = 0;
    srand(time(NULL));
    for ( int i =0; i <N; i++ ) {
        arr[i] = rand() %10 -5;
    }
 
 
    printMas(arr, N);
 
    //elements(arr, N);
 
 
    elements(arr,N);
 
    printMas(arr, N);
    b(arr,N);
    //cout << sum;
    //cout<<"\n";
    //arTwoDel = sum/N;
    //cout << arTwoDel;}
 
    //int f = arefm( arr, N );
    //
    //if(f==-1)
    //  //cout<<"NoFIND"<<endl;
    //print("NoFind", -1);
    //   //cout << " ix = " << f << endl;
    //print(" ix = ", f);
 
    //int raznc = raznica( arr, N );
    ////cout << "raznica = " << razn;
 
    //print("Raznica = ", raznc);
    //
 
 
    delete [] arr;
 
 
    return 0;
}
Миниатюры
Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов  
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 12:48  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #12
@Belfegor, что означает ind i m?
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
26.06.2013, 12:51     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #13
Цитата Сообщение от unikalen Посмотреть сообщение
что означает ind i m?
задание то свое читали? номер и элемент...
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 12:55  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #14
@Belfegor, ТИ СДЕЛАЛ ТОЛЬКО Номер элемента массива ближайшего к среднеарифметическому его значению?? или и разницу элементов?
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
26.06.2013, 12:56     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #15
в 5 посте я написал что зделал.
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 12:59  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #16
@Belfegor, Скажи норм какие ти задания сделал?
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
26.06.2013, 13:00     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #17
...
Цитата Сообщение от unikalen Посмотреть сообщение
Номер элемента массива ближайшего к среднеарифметическому его значению
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 13:03  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #18
@Belfegor, а разницу между первим отрицательним и вторим положительним елементом можеш сделать?
Belfegor
26.06.2013, 13:06
  #19

Не по теме:

могу, но не хочу.
и врядли кто-то будет делать с таким тоном

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2013, 13:07     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов
Еще ссылки по теме:

C++ Вычислить номер элемента массива ближайшего к среднеарифметического его значения
в массиве вычислить номер элемента массива, ближайшего к среднеарифметического его значеня C++
C++ Найти номер элемента массива, ближайшего к среднему арифметическому его значений

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

Или воспользуйтесь поиском по форуму:
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
26.06.2013, 13:07  [ТС]     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов #20
@Belfegor, почему? извеняй если я тото не так тебе написал!( зделай если можеш?
Yandex
Объявления
26.06.2013, 13:07     Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов
Ответ Создать тему
Опции темы

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