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

В чем ошибки (вычисление суммы элементов массива)? - C++

Восстановить пароль Регистрация
 
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
25.06.2012, 00:20     В чем ошибки (вычисление суммы элементов массива)? #1
программа оформлена в виде функций, она вычисляет сумму элементов массива, расположенных после первого положительного элемента.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "iostream.h"
 
void maxmass(int *p)
{
   for (int i = 0; i < sizeof(p) / sizeof(p[0]);++i)
{
    if (*p < 0)
p++;
   continue;
   }
else
{
   cout << p[i] + p[i+1] << " " ;
}
}
int main()
{
   int mas[] = {1,4,6,4,8,346,845,-2,-634,-123};
maxmass(mas[0]);
return 0;
}
но почему - то выдает ошибки:

C:\Program Files\Microsoft Visual Studio\MyProjects\функция 12\функция 12.cpp(11) : error C2181: illegal else without matching if
C:\Program Files\Microsoft Visual Studio\MyProjects\функция 12\функция 12.cpp(19) : error C2664: 'maxmass' : cannot convert parameter 1 from 'int' to 'int *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 00:20     В чем ошибки (вычисление суммы элементов массива)?
Посмотрите здесь:

C++ Вычисление разницы произведения и суммы положительных элементов массива
C++ Вычисление суммы элементов массива по столбцам
C++ Вычисление суммы элементов строк n-мерного массива
C++ Вычисление суммы элементов матрицы по строкам
C++ Вычисление суммы и определение номеров положительных элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Neon-z
46 / 41 / 1
Регистрация: 06.09.2010
Сообщений: 419
25.06.2012, 00:24     В чем ошибки (вычисление суммы элементов массива)? #2
C++
1
2
3
4
if (*p < 0)
p++;
   continue;
   }
У вас тут фигурной скобки нет после условия ифа.

Добавлено через 25 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "iostream.h"
 
void maxmass(int *p)
{
   for (int i = 0; i < sizeof(p) / sizeof(p[0]);++i)
{
    if (*p < 0){
p++;
   continue;
   }
else
{
   cout << p[i] + p[i+1] << " " ;
}
}
int main()
{
   int mas[] = {1,4,6,4,8,346,845,-2,-634,-123};
maxmass(mas[0]);
return 0;
}
Добавлено через 2 минуты
Ну а с указателями не помогу, так как сам плохо шарю.
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
25.06.2012, 00:28  [ТС]     В чем ошибки (вычисление суммы элементов массива)? #3
Neon-z, теперь выдает
c:\program files\microsoft visual studio\myprojects\функция13\функция13.cpp(17) : error C2601: 'main' : local function definitions are illegal
c:\program files\microsoft visual studio\myprojects\функция13\функция13.cpp(22) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
xADMIRALx
 Аватар для xADMIRALx
66 / 60 / 1
Регистрация: 09.06.2012
Сообщений: 291
25.06.2012, 00:32     В чем ошибки (вычисление суммы элементов массива)? #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
#include <iostream>
#define maxs1 10;
using namespace std;
 
void maxmass(int *p);
int main()
{
    setlocale(LC_ALL,".1251");
    
  
   int mas[maxs1] = {1,4,6,4,8,346,845,-2,-634,-123};
   cout << "Исходный массив : " ;
for (int i = 0; i < maxs1;++i)
cout << maxs1[i] << " ";
cout << endl << "Теперь выполним задание после каждого положительного значение прибавим после него следующие,если число отрицательно пропускаем" << endl;
maxmass(mas);
 
system("PAUSE");
return 0;
}
void maxmass(int *p)
{
  
   for (int i = 0; i < maxs1;++i)
{
    if (p[i] > 0)
    {
 
    cout << endl << p[i] + p[i+1] << " " << endl ;
    }
 }
 
}
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
25.06.2012, 00:34  [ТС]     В чем ошибки (вычисление суммы элементов массива)? #5
xADMIRALx, еще раз спасибо)
Yandex
Объявления
25.06.2012, 00:34     В чем ошибки (вычисление суммы элементов массива)?
Ответ Создать тему
Опции темы

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