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

Массив - C++

Восстановить пароль Регистрация
 
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.01.2010, 20:44     Массив #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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
 
int const max_size=10;
int MasSum( int  (&M)[max_size]);
 
 
int main()
{
    int* M1=0;
    int max_size=0;
    cin>>max_size;
 
    M1=new int[max_size];
 
    srand(time(NULL));
    for (int i=0; i<max_size; i++){
        M1[i]=rand()%6;
        cout<<M1[i];
    }
    MasSum(M1); //ошибка
    getch();
    return 0;
}
 
int MasSum( int  (&M)[max_size]){
    int sum=0;
    for (int i=0; i<max_size; i++){
        sum+=M[i];
    }
    return sum;
}

в функции main при вызове функции MasSum компилятор выдает ошибку, что не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2010, 20:44     Массив
Посмотрите здесь:

C++ Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W
C++ Задать массив вещественных чисел и вставить в исходный массив число
C++ Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W
C++ задача записать в массив отрицательные элементы матрицы в массив и вывести их
Массив: Составить массив из двух исходных по заданному принципу заполнения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
18.01.2010, 20:47     Массив #2
C++
1
int MasSum(int * M, int max_size);
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
18.01.2010, 20:51     Массив #3
C++
1
2
3
4
5
6
class cMagicSquare{
    public:
 
    private:
 
};
это к чему.

Добавлено через 2 минуты
fasked:
Хотел уж написать но не успел, прям читаешь мои мысли.
PointsEqual:
Может это пример на Java, поэтому delete []M1

Добавлено через 18 секунд
отсутствует
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
18.01.2010, 20:52     Массив #4
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Хотел уж написать но не успел, прям читаешь мои мысли.
Да это ж очевидно... к гадалке не ходи

Цитата Сообщение от Genius Ignat Посмотреть сообщение
Может это пример на Java, поэтому delete []M1
зато я вот не читал текст целиком...
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.01.2010, 20:58  [ТС]     Массив #5
пример на java? нет
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
18.01.2010, 21:02     Массив #6
PointsEqual:
Надо было смайл поставить:
это шутка
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.01.2010, 21:04  [ТС]     Массив #7
fasked: можеш полностью код написать? а то че то у мну не получается
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
18.01.2010, 21:07     Массив #8
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 <conio.h>
 
using namespace std;
 
int MasSum( int * M, int max_size);
 
int main()
{
    int* M1=0;
    int max_size=0;
    cin>>max_size;
 
    M1=new int[max_size];
 
    srand(time(NULL));
    for (int i=0; i<max_size; i++){
        M1[i]=rand()%6;
        cout<<M1[i];
    }
    MasSum(M1, max_size); //ошибка
    
    delete []M1;
    
    getch();
    return 0;
}
 
int MasSum( int * M, int max_size){
    int sum=0;
    for (int i=0; i<max_size; i++){
        sum+=M[i];
    }
    return sum;
}
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
18.01.2010, 22:02     Массив #9
PointsEqual,

в функции main при вызове функции MasSum компилятор выдает ошибку, что не так?

не так то, что функция принимает на вход ссылку на массив, а ты суёшь ей указатель
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.01.2010, 01:17  [ТС]     Массив #10
Цитата Сообщение от Rififi Посмотреть сообщение
PointsEqual,

в функции main при вызове функции MasSum компилятор выдает ошибку, что не так?

не так то, что функция принимает на вход ссылку на массив, а ты суёшь ей указатель
а как "подсунуть" ссылку ?
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
19.01.2010, 01:20     Массив #11
PointsEqual,

в первоначальном варианте - так:

int arr[max_size];
...
MasSum(arr);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2010, 01:40     Массив
Еще ссылки по теме:

Сформировать массив А из четных элементов исходного массива, а массив В - из нечетных C++
Массив: Переписать элементы одномерного массива A, попадающие в интервал [2, 6], в массив B. C++
Как в массив скопировать массив, который заполнен через указатели C++

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

Или воспользуйтесь поиском по форуму:
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.01.2010, 01:40  [ТС]     Массив #12
все, тему можно закрывать
Yandex
Объявления
19.01.2010, 01:40     Массив
Ответ Создать тему
Опции темы

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