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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Elenaj
4 / 0 / 1
Регистрация: 28.03.2013
Сообщений: 28
#1

Дан вещественный массив А[N]. Сформировать массив В[3] следующим образом: - C++

12.05.2013, 16:55. Просмотров 1717. Ответов 44
Метки нет (Все метки)

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
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_CTYPE, "Russian");
    cout<<"Введите размер массива;\n";
    const unsigned Size=0;
    double A[nSize];
    cout<<"Введите массив:\n";
    for(unsigned i=0;i<nSize;i++)
    {
        cout<<"A["<<i<<"]=";
        cin>>A[i];
    }
    double B[3];
    double dMax=A[0];
    for(unsigned i=1;i<nSize;i++)
        if(A[i]>dMax)dMax=A[i];
    B[0] = max(A,nSize);
    double dAvr=0;
    double average;
    int nCount=0;
    for(unsigned i=0;i<nSize;i++)
        if(A[i]>0)
        {
            dAvr+=A[i];
            nCount++;
        }
    dAvr/=nCount;
    B[1] = average(A,nSize);
    double dMin=A[0];
    for(unsigned i=1;i<nSize;i++)
        if(A[i]<dMin)dMin=A[i];
    B[2] = abs(min(A,nSize));
    for(unsigned i=0;i<3;i++)
    cout<<"B["<<i<<"]="<<B[i]<<endl;
    cout<<"B[3]=[B[0],B[1],B[2]]";
    system("pause");
    delete[] A,B;
    return 0;
}



1)когда первый раз употребляется nSize подчеркивает и пишет что идентификатор не определен, как его определить?
2)где написано average пишет что выражение должно иметь тип указателя на функцию, но мне нужно чтоб было без указателей, как сделать?

а я вообще правильно программу написала?
вот условие
Дан вещественный массив А[N]. Сформировать массив В[3] следующим образом:
• элементу В[0] присвоить значение максимального элемента массива А;
• элементу В[1] присвоить значение среднего арифметического положительных элементов массива А;
• элементу В[2] присвоить абсолютное значение минимального элемента массива А.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 16:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан вещественный массив А[N]. Сформировать массив В[3] следующим образом: (C++):

Дан массив Z(15). Сформировать массив В следующим образом - C++
Дан массив Z(15). Сформировать массив В следующим образом. Если положительных элементов в массиве Z больше, чем отрицательных, то...

Массив: сформировать массив C[12] так, чтобы элементы располагались следующим образом: A(1) B(1) A(2) B(2) - C++
из массивов A и B сформировать массив C так, чтобы элементы массива располагались следующим образом: A(1) B(1) A(2) B(2) и т.д.

Дан вещественный массив А (n). Отсортировать его таким образом, чтобы - C++
Задача 45. Дан вещественный массив А (n). Отсор¬тировать его таким образом, чтобы все положительные числа находились в начале, а...

Заданные два массива: A (n) и B (n). Сформировать массив C (n) следующим образом: - C++
ПОМОГИТЕ!!!!!СРОЧНО НАДО!!!!!!!!!!!!! Заданные два массива: A (n) и B (n). Сформировать массив C (n) следующим образом: ci = max...

Вычислить значение функции \ Сформировать массив С следующим образом - C++
задание 4.3 и 4.4 http://s019.***********/i617/1210/d5/77b70de157d7.jpg P.S. Ищу добродетеля для помощи решения контрольного...

Заданные два массива: A (n) и B (n). Сформировать массив C (n) следующим образом: - C++
НУЖНА ПОМОЩЬ! Заданные два массива: A (n) и B (n). Сформировать массив C (n) следующим образом: ci = max {ai, bi}, если i -...

44
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
12.05.2013, 18:24 #31
Elenaj, для присвоения должны совпадать типов.
0
Elenaj
4 / 0 / 1
Регистрация: 28.03.2013
Сообщений: 28
12.05.2013, 18:26  [ТС] #32
metaluga145, ну они и так совпадают потому что у nSize тип int
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.05.2013, 19:15 #33
Так пойдет?
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>
#include <algorithm>
 
int main()
{
    double A[] = {1,2,-3,4,5,6};
    double B[3];
    
    const int size = sizeof(A)/sizeof(*A);
 
    auto mm = std::minmax_element( A, A+size );
 
    B[2] = std::abs( *mm.first );
    B[0] = *mm.second;
    B[1] = 0;
 
    int count = 0;
    for( auto e : A )
    {
        if( e >= 0 )
        {
            B[1] += e;
            count++;
        }
    }
 
    if( count > 0 ) { B[1] /= count; }
 
    std::cout << B[0] << std::endl;
    std::cout << B[1] << std::endl;
    std::cout << B[2] << std::endl;
 
    std::system("pause");
    return 0;
}
0
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
12.05.2013, 22:21 #34
Elenaj, они не совпадают, потому что одно const, а другое-нет
0
Elenaj
4 / 0 / 1
Регистрация: 28.03.2013
Сообщений: 28
13.05.2013, 08:56  [ТС] #35
Tulosba, немного не понятно

Добавлено через 2 часа 57 минут
metaluga145, а как сделать одинаковые?
0
daslex
1280 / 524 / 107
Регистрация: 02.08.2011
Сообщений: 2,739
13.05.2013, 13:34 #36
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    system("CHCP 1251"); //Это у меня для русской кодировки при шрифте lusidia console
            
    const int N=6; //Предполагаемый максимум будет на 1 меньше чем указан
    double A[N]={0,};
    double B[3]={0};
    int len=N+1; //Активные ячейки. Длина массива А
 
    cout<<"Введи длину массива "; 
    
    while ((len>=N)||(len<1))
    {
        cin>>len;
        if (len>=N) cout<<"Слишком большой размер\n"<<
                           "Введи длину массва: " ;
        else if (len<1) cout<<"Слишком маленький размер\n"<<
                           "Введи длину массва: " ;
    }
    cout<<"\n";
 
    for (int i=0;i<len;i++) //Заполнение массива
    {
        cout<<i+1<<". ";
        cin>>A[i]; 
    }
 
    
    double max=A[0]; //Максимальный элемент
    double min=A[0]; //Минимальный элемент
    double sum=0;    //Это сделаем средним арифметическим
 
    for (int i=0;i<len;i++)
    {
        if (max<A[i]) max=A[i];
        if (min>A[i]) min=A[i];
        if (A[i]>0) sum=sum+A[i];
    }
 
    B[0]=max;
    B[1]=sum/len;
    B[2]=abs(min);
    
    cout<<"ИСХОДНЫЙ МАССИВ:\t";
    for (int i=0;i<len;i++) cout<<A[i]<<"\t";
    cout<<"\nМАССИВ B[3]:\t\t";
    for (int i=0;i<3;i++) cout<<B[i]<<"\t";
    cout<<"\n\n";
    system("PAUSE");
}
0
Elenaj
4 / 0 / 1
Регистрация: 28.03.2013
Сообщений: 28
13.05.2013, 13:38  [ТС] #37
daslex, не, вы лучше подскажите как переделать чтобы он не писал что мне нужно константное значение? потому что мне нужно чтоб я размер сама вводила
0
daslex
1280 / 524 / 107
Регистрация: 02.08.2011
Сообщений: 2,739
13.05.2013, 13:43 #38
Elenaj,
а как я показал вы вводите не сами?
0
Elenaj
4 / 0 / 1
Регистрация: 28.03.2013
Сообщений: 28
13.05.2013, 14:32  [ТС] #39
daslex, что такое len?
0
Tulosba
13.05.2013, 14:48
  #40

Не по теме:

Цитата Сообщение от Elenaj Посмотреть сообщение
что такое len?
это такое сокращение от Лена

0
Elenaj
4 / 0 / 1
Регистрация: 28.03.2013
Сообщений: 28
13.05.2013, 14:51  [ТС] #41
Tulosba, ой ну я же серьезно)
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.05.2013, 14:52 #42
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 <algorithm>
#include <iostream>
#include <iterator>
#include <numeric>
#include <vector>
#include <cmath>
 
int main()
{
    std::size_t vectorSize;
    std::cout << "Input the size of vector: ";
    std::cin >> vectorSize;
 
    std::vector <double> currentVector (vectorSize);
    std::cout << "Input " << vectorSize << " elements: " << std::endl;
    for (unsigned i = 0; i < vectorSize; i++)
        std::cin >> currentVector.at(i);
 
    unsigned positiveCounter(0);
    std::count_if(currentVector.begin(), currentVector.end(), [&positiveCounter] (double currentElement) -> bool {
        return positiveCounter += currentElement > 0 ? 1 : 0;
    });
    double positiveAverage(std::accumulate(currentVector.begin(), currentVector.end(), 0.0, [] (double tempSum, double currentElement) -> double {
        return tempSum += currentElement > 0 ? currentElement : 0;
    }) / positiveCounter);
    auto minimalAndMaximal(std::minmax_element(currentVector.begin(), currentVector.end()));
 
    std::vector <double> resultVector;
    resultVector.push_back(*minimalAndMaximal.second);
    resultVector.push_back(positiveAverage);
    resultVector.push_back(fabs(*minimalAndMaximal.first));
    std::cout << "Result vector: " << std::endl;
    std::copy(resultVector.begin(), resultVector.end(), std::ostream_iterator <double> (std::cout, " "));
 
    return 0;
}
0
Elenaj
4 / 0 / 1
Регистрация: 28.03.2013
Сообщений: 28
13.05.2013, 14:58  [ТС] #43
Ev[G]eN, ну это слишком сложно
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
13.05.2013, 15:08 #44
Elenaj, Я Вам в 33 сообщении предложил вполне рабочий и не трудный для понимания вариант. Если Вам что-то не понятно, или кажется сложным - спрашивайте, отвечу. Или упростим код как будет нужно. Просто я вижу тут уже 5 страниц обсуждений, при нескольких рабочих вариантах, однако Вам они кажутся не подходящими. Такими темпами можно еще N страниц наплодить и не добиться никаких результатов.
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.05.2013, 15:09 #45
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
#include <algorithm>
#include <iostream>
#include <cmath>
 
int main()
{
    std::size_t arraySize;
    std::cout << "Input the size of array: ";
    std::cin >> arraySize;
 
    double positiveSum(0);
    unsigned positiveCounter(0);
 
    double *firstArray = new double [arraySize];
    std::cout << "Input " << arraySize << " elements: " << std::endl;
    for (unsigned i = 0; i < arraySize; i++) {
        std::cin >> firstArray[i];
        positiveSum += firstArray[i] > 0 ? firstArray[i] : 0;
        positiveCounter += firstArray[i] > 0 ? 1 : 0;
    }
    auto minimalAndMaximal = std::minmax_element(firstArray, firstArray + arraySize);
 
    double resultArray[3] = {*minimalAndMaximal.second, positiveSum / positiveCounter, fabs(*minimalAndMaximal.first)};
    std::cout << "Result: " << std::endl;
    for (unsigned i = 0; i < 3; i++)
        std::cout << resultArray[i] << " ";
    delete [] firstArray;
 
    return 0;
}
0
13.05.2013, 15:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 15:09
Привет! Вот еще темы с ответами:

Из массивов A[6] и B[6] сформировать массив C[12] так, чтобы элементы массива располагались следующим образом: A(1) B(1) A(2) B(2) и т.д. - C++
помогите написать программу, плиз!!!! из массивов A и B сформировать массив C так, чтобы элементы массива располагались следующим...

Задан массив из k символов. Преобразовать массив следующим образом: расположить символы в обратном порядке - C++
Задан массив из k символов. Преобразовать массив следующим образом: расположить символы в обратном порядке. Только начали изучать С++,...

Преобразовать массив следующим образом: сначала должны стоять цифры, входящие в массив, а затем все остальные символы - C++
помогите пожайлуста с задачей. Задан массив из k символов. Преобразовать массив следующим образом: сначала должны стоять цифры,...

Вещественный массив - заполнение случайным образом. - C++
Здравствуйте. Помогите пжлста с задачкой. (Visual C++ 6.0) Дан вещественный массив размером N. Составить функцию, которая определит...


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

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

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