Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2012, 23:26   #1
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию в чем ошибки?

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

Код:
#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.
julia9311 вне форума Ответить с цитированием
Старый 25.06.2012, 00:34   #2
Diskretor
 
Регистрация: 31.01.2012
Сообщений: 7
По умолчанию

Практически не знаю С++, поэтому объяснить сильно не смогу.

Но вот, что Вам написал:
Код:
#include <iostream>

using namespace std;

void maxmass(int p[], int m_count)
{
    bool plus = false;
	int sum = 0;
	for (int i = 0; i < m_count; ++i) {
		if (plus == true) {
			if (p[i]>0) cout << "+";
			cout << p[i];
			sum = sum + p[i];
		}
			else if (p[i]>0) plus = true;
    }
	cout << "=" << sum;
}

int main()
{
	system("chcp 1251>>null");

	int mas[] = {-1,-4,6,5,8,346,845,-2,-634,-123};
	maxmass(mas, sizeof(mas) / sizeof(mas[0]));
	
	getchar();
	return 0;
}
А Вы можете объяснить логику Вашей программы (алгоритм как она должна была работать).
А то у Вас как то все слишком просто, но понять, как заставить это работать я не смог.

Последний раз редактировалось Diskretor; 25.06.2012 в 00:39.
Diskretor вне форума Ответить с цитированием
Старый 25.06.2012, 01:42   #3
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию

Discretor, спасибо)
julia9311 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в чем причина ошибки? obsession Паскаль, Turbo Pascal, PascalABC.NET 2 27.10.2011 19:57
В чем причина ошибки? Operator not... Effort Помощь студентам 0 20.06.2011 03:35
2 ошибки , чем проблема XxXGhosTXxX Общие вопросы C/C++ 7 21.03.2011 16:27
2 ошибки в макросе, в чем причина? robbe Microsoft Office Excel 4 15.02.2010 14:03