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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2013, 16:31   #1
davidsemen
 
Регистрация: 16.11.2013
Сообщений: 6
По умолчанию массивы,нужна помощь

Подсчитать сумму элементов массива между первым и вторым отрицательными числами(используя функции
Код:
#include<conio.h>
#include<iostream>
using namespace std;


void poisk(int,int)
{
int pervoeotric=0;
int vtoroeotric=0;
int n=0;
int i=0,*arr=0;
for(i=0; i<n; i++)
{
if(arr[i]<0)
{
pervoeotric=i;break;
}
}
for(i=pervoeotric+1; i<n; i++)
{
if(arr[i]<0)
{
vtoroeotric=i;break;
}
}
}

void zapolnenie(int )
{
int *arr=0,n=0;
for(int i=0; i < n; i++)
{
cout <<"input arr["<< i <<"] = ";
cin >> arr[i];
}
}
void count(int)
{
int sum=0;
int pervoeotric=0,vtoroeotric=0,i=0,*ar r=0;
for(int i=pervoeotric+1; i < vtoroeotric; i++)
sum = sum + arr[i];
}
int main()
{
int n;
cout << "Enter the size of array: ";
cin >> n;
int *arr = new int[n];
int pervoeotric=0;
int vtoroeotric=0;
int sum=0;
int i=0;
poisk(pervoeotric,vtoroeotric);
zapolnenie(arr[i]);
count(sum);


cout <<"\nSumma: "<< sum;
//delete [n]arr;

getch();
return 0;
}
davidsemen на форуме Добавить отзыв для davidsemen Пожаловаться на это сообщение Редактировать/удалить сообщение

Последний раз редактировалось Stilet; 16.11.2013 в 16:43.
davidsemen вне форума Ответить с цитированием
Старый 16.11.2013, 16:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ага. Массив есть. Хорошо. Демаю функция может выглядеть так:
Код:
int calc(int *a,int n){
 int sum=0,i;
 for(i=0;i<n && a[i]>=0;i++); sum+=a[i];
 for(++i;i<n && a[i]>=0;i++); sum+=a[i];
 return sum;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2013, 17:04   #3
davidsemen
 
Регистрация: 16.11.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ага. Массив есть. Хорошо. Демаю функция может выглядеть так:
Код:
int calc(int *a,int n){
 int sum=0,i;
 for(i=0;i<n && a[i]>=0;i++); sum+=a[i];
 for(++i;i<n && a[i]>=0;i++); sum+=a[i];
 return sum;
}
функции есть,только программа не работает
не пойму где проблема
davidsemen вне форума Ответить с цитированием
Старый 16.11.2013, 17:11   #4
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

По-моему, все-таки так
Код:
int calc(int *a,int n){
 int sum=0,i;
 for(i=0;i<n && a[i]>=0;i++)
    ;
 for(++i;i<n && a[i]>=0;i++) 
    sum+=a[i];
 return sum;
}
Stilet, у Вас сумма первого и второго отрицательных эл-тов вычисляется, а нужна сумма эл-тов между ними.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 16.11.2013, 17:33   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а да. Правильно сказал. Значит пусть будет по твоему.
Цитата:
только программа не работает
Пошаговку не делал? Я твой вариант с трудом читаю, потому и предложил свое видение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2013, 17:43   #6
davidsemen
 
Регистрация: 16.11.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А-а-а да. Правильно сказал. Значит пусть будет по твоему.

Пошаговку не делал? Я твой вариант с трудом читаю, потому и предложил свое видение.
она работает в таком виде(но нужны фунцкции):
Код:
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
int n; 
    cout << "Enter the size of array: ";
    cin >> n;
    int *arr = new int[n];
	for(int i=0; i < n; i++)
	{
		cout <<"input arr["<< i <<"] = ";
		cin >> arr[i];
	}
	int i=0,pervoeotric=0,vtoroeotric=0,sum=0;
	for(i=0; i<n; i++)
		{
		if(arr[i]<0)
			{
			pervoeotric=i;break;
			}
		}
	for(i=pervoeotric+1; i<n; i++)
		{
		if(arr[i]<0)
			{
			vtoroeotric=i;break;
			}
		}
		for(int i=pervoeotric+1; i < vtoroeotric; i++)
		sum = sum + arr[i];
	cout <<"\nSumma: "<< sum;

getch();
return 0;
}

Последний раз редактировалось Stilet; 16.11.2013 в 18:52.
davidsemen вне форума Ответить с цитированием
Старый 16.11.2013, 18:53   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну так я и предложил тебе реализацию функции вместо твоих двоих циклов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы на си. нужна помощь в решении Lexeres Помощь студентам 2 26.12.2009 11:16
Нужна помощь в Pascal (Одномерные массивы) JayDe Помощь студентам 16 19.12.2009 15:07
Массивы и StrGrid(Нужна помощь) бедный мальчик Помощь студентам 1 27.10.2009 13:43
Одномерные массивы. Нужна помощь. rus_rock_no_dead Общие вопросы C/C++ 9 20.01.2009 18:58
Массивы(разные)нужна большая помощь! ser-stereo Паскаль, Turbo Pascal, PascalABC.NET 13 22.10.2008 22:53