• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Одномарные Массивы На С++

  • Автор темы Guest
  • Дата начала
G

Guest

Помогите пожалуйста решить задачу!!!
В одномерном массиве,состоящем из n вещественных элементов,вычислить:
1) максимальный по модулю элемент массива;
2) сумму элементов массива, расположенных между первым и вторым положительными элементами.
Преобразовать массив таким образом, чтобы элементы,равные нулю, распологались после всех остальных.
 
X

xparen

Танцуй и пляши, от +, не откажусь
C++:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;


int main()
{
int n, max, first=0, second=0, sum=0; // n - размер массива, max - максимальное значение по модулю
cout<<"Vvedite n";
cin>>n;
int *mas = new int [n];
cout<<"Vvedite massiv";
for(int i=0; i<n; i++)
cin>>mas[i];
// 1-ое задание
max=abs(mas[0]); // назначим любой, допустим 1-ый элемент массива, как наибольший по модую, abs - модуль числа
for(int i=0; i<n; i++)
if(abs(mas[i])>max)
max=abs(mas[i]);
// 2-ое задание
for(int i=0; i<n; i++) // нахождение 1-го положительного
if(mas[i]>0){
first=i;
break;
}
for(int i=first+1; i<n; i++) // нахождение 2-го положительного
if(mas[i]>0){
second=i;
break;
}
sum=0; // сумма
if(first && second){ // проверка, если были найдены положительные числа
for(int i=(first+1); i<second; i++)	
sum=sum+mas[i];
}
// 3-е задание, (сделал по кривому, было поздно, лень думать) : тупо не выводит нули, предварительно считает их кол-во в массиве, и выводит num-раз в конце
int num=0;
for(int i=0; i<n; i++)
if(mas[i]==0)
num++;
cout<<"Sort Massiv"<<endl;
for(int i=0; i<n; i++)
if(mas[i]!=0)
cout<<mas[i]<<" ";
for(int i=0; i<num; i++)
cout<<"0 ";

cout<<"\nMax chislo po moduly "<<max<<endl;
cout<<"Summa "<<sum<<endl;
getch(); // задержка вывода на экран
return 0;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!