#include
#include
using namespace std;
int const n=5;
//=================== Номер 1 отриц. эл-та =======================
double otric1(double massiv[n])
{
int i;
int n1;
//int n2=0;
for (i = 0; i <= n; i++) //определение номера первого отрицательного элемента
{
if (massiv[i] < 0)
{
n1=i;
return n1;
}
}
}
//=================== Номер 1 отриц. эл-та =======================
//=================== Номер 2 отриц. эл-та =======================
double otric2(double massiv[n])
{
int i;
int n2;
int n1;
n1=otric1(massiv);
for (i = n1+1; i <= n; i++) //определение номера второго отрицательного элемента
{
if (massiv[i] < 0)
{
n2 = i;
return n2;
}
}
}
//=================== Номер 2 отриц. эл-та =======================
//=================== Сумма между двумя отриц. эл-тами ============
double summa(double massiv[n])
{
int i;
int n2;
int n1;
n1=otric1(massiv);
n2=otric2(massiv);
if ((n2 != 0) && (n1 != n2)) //проверка на существование границ отрицательных элементов
{
int sum_mezhdu=0;
//нахождение суммы элементов между первым и последним отрицательным элементом
for (i = n1+1; i <= n2; i++)
{
sum_mezhdu += massiv[i]; //sum_mezhdu=n1+n2; (Если сложить их индексы, то прога пашет)
}
return sum_mezhdu;
}
else
cout<<("В массиве отсутствуют два отрицательных элемента! \n");
}
//=================== Сумма между двумя отриц. эл-тами ============
int main()
{
setlocale(LC_ALL, "RUS");
double massiv[n];
int i;
double max=0;
for (i=0;i<=(n-1);i++)
{
cout<<"Введите "<<(i+1)<<" элемент: ";
cin>>massiv[i];
while (cin.fail())
{
cin.clear();
cin.ignore(numeric_limits::max(),'\n');
cout << "Введено некорректное значение. Введите "<<(i+1)<<" элемент: ";
cin >> massiv[i];
}
}
cout<<("номер 1 отриц эл-та: = ")<<otric1(massiv)<<endl; // Норм считает (Номер 1 отриц. эл-т)
cout<<("номер 2 отриц эл-та: = ")<<otric2(massiv)<<endl; // Норм считает (Номер 2 отриц. эл-т)
cout<<("Сумма между 2 отриц: = ")<<summa(massiv)<<endl; // Пишет не то :(
system ("PAUSE");
return 0;
}
Другие языки программирования и технологии
Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++

Виталя Милько
Если не трудно скажи плиз а если С# ?
ты бы хоть вопрос задал... что не работает-то?
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
void pause(void)
{
_getch();
}
void print( int *array, int SizeOf )
{
for( int i= 0; i < SizeOf; i++ )
{
cout<<array[i]<<' ';
}
cout<<endl;
}
bool SetLine( int *array, int SizeOf, int &one, int &two )
{
bool a= false,
b= false;
for( int i= 0; i < SizeOf; i++ )
{
if(array[i] < 0)
{
one= i;
a= true;
break;
}
}
for( int i= SizeOf - 1; i >= 0; i-- )
{
if(array[i] < 0)
{
two= i;
b= true;
break;
}
}
return a && b;
}
int calculate( int *array, int one, int two )
{
int max= ( one > two ) ? one : two,
min= ( one < two ) ? one : two;
int result= 0;
for( int i= min + 1; i < max; i++ )
{
result+= array[i];
}
return result;
}
void main(void)
{
setlocale(LC_ALL,"Russian");
const int n= 5;
int simple_array[n]= {0};
for( int i= 0; i < n; i++ )
{
cin>>simple_array[i];
while( cin.fail() )
{
cin.clear();
cin>>simple_array[i];
}
}
print( simple_array, n );
int one, two;
if(SetLine( simple_array, n, one, two ))
{
cout<<calculate( simple_array, one, two );
}
else
{
cout<<"Нет a и b"<<endl;
}
pause();
}
#include
#include
using std::cin;
using std::cout;
using std::endl;
void pause(void)
{
_getch();
}
void print( int *array, int SizeOf )
{
for( int i= 0; i < SizeOf; i++ )
{
cout<<array[i]<<' ';
}
cout<<endl;
}
bool SetLine( int *array, int SizeOf, int &one, int &two )
{
bool a= false,
b= false;
for( int i= 0; i < SizeOf; i++ )
{
if(array[i] < 0)
{
one= i;
a= true;
break;
}
}
for( int i= SizeOf - 1; i >= 0; i-- )
{
if(array[i] < 0)
{
two= i;
b= true;
break;
}
}
return a && b;
}
int calculate( int *array, int one, int two )
{
int max= ( one > two ) ? one : two,
min= ( one < two ) ? one : two;
int result= 0;
for( int i= min + 1; i < max; i++ )
{
result+= array[i];
}
return result;
}
void main(void)
{
setlocale(LC_ALL,"Russian");
const int n= 5;
int simple_array[n]= {0};
for( int i= 0; i < n; i++ )
{
cin>>simple_array[i];
while( cin.fail() )
{
cin.clear();
cin>>simple_array[i];
}
}
print( simple_array, n );
int one, two;
if(SetLine( simple_array, n, one, two ))
{
cout<<calculate( simple_array, one, two );
}
else
{
cout<<"Нет a и b"<<endl;
}
pause();
}
Виталя Милько
если не трудно скажи плиз а если С# ?
Похожие вопросы
- C++ Нужно вычислить сумму элементов массива, расположенных между первым и последним отрицательными элементами.
- Написать функцию, вычисляющую произведение элементов массива, расположенных между первым и вторым нулевым элементам
- Паскаль, одномерн массив, вычислить сумму элементов массива, расположенных после последнего элемента, равного нулю. Спасибо)
- С++ Передать в функцию квадратную матрицу и вычислить сумму элементов на ее главной диагонали и вернуть эту сумму.
- Вычислить сумму элементов каждого столбика. С++
- Вычислить сумму нечетных элементов в программа С++ .Через статический и динамический массив! Вот я сам написал проверьте
- задачка PAscal. найти сумму положительных элементов массива, расположенных до минимального элемента этого массива
- сумму элементов массива, расположенных после последнего элемента, равного нулю. Диапазон – [-25;15]. Помогите решить
- №1.Как вычислить произведение элементов массива(1..5)В Паскале=)))№2.Найти наименьший элемент в массиве!Тоже в Паскале)
- Pascal . Дан массив вещественных чисел. Найти сумму элементов, номера которых являются простыми числами