Другие языки программирования и технологии
Программа на С++
Помогите написать... Или хотя бы понять первые 5 строчек, я ничего не понимаю. Ввести допустимое количество изменений знака в последовательность чисел и числа последовательности, количество которых заранее неизвестно. Последним числом последовательности является число, после ввода которого количество изменений знака совпадёт с заданным. Вычислить сумму последних в последовательности отрицательных чисел введённых подряд. Пример ввода: 3....-1,-2,-3,4,5,-6,-7,7. Ожидаемый результат: -13.
int n; int num; int s; int sum;
cout<<"Input change sign = "; cin>>n;
cin>>num;
if (num>0) { s= 1; }
else { s= -1; sum= num; }
while (n>0)
{
cin>>num;
if ((s==-1)&&(num<0)) { sum= sum + num; }
if ((s==-1)&&(num>=0)) { s= 1; n--; }
if((s==1)&&(num<0)) { s= -1; sum= num; n--; }
}
cout<< sum;
cout<<"Input change sign = "; cin>>n;
cin>>num;
if (num>0) { s= 1; }
else { s= -1; sum= num; }
while (n>0)
{
cin>>num;
if ((s==-1)&&(num<0)) { sum= sum + num; }
if ((s==-1)&&(num>=0)) { s= 1; n--; }
if((s==1)&&(num<0)) { s= -1; sum= num; n--; }
}
cout<< sum;
Сергей Явдощак
Спасибо ))
Sergey K.
Что такое s?
int cur, prev, n, sum, last_sum = 0;
cin >> n >> prev;
for (sum = prev; n; prev = cur) {
cin >> cur;
if (prev * cur < 0) {
--n;
if (sum < 0) { last_sum = sum; }
sum = cur;
} else {
sum += cur;
}
}
cout << (sum < 0? sum : last_sum);
cin >> n >> prev;
for (sum = prev; n; prev = cur) {
cin >> cur;
if (prev * cur < 0) {
--n;
if (sum < 0) { last_sum = sum; }
sum = cur;
} else {
sum += cur;
}
}
cout << (sum < 0? sum : last_sum);
Sergey K.
Классно, лучше бы объяснили задание (
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main() {
size_t x;
cin >> x;
auto signbit = [](int a) { return a < 0 ? -1 : 1; };
vector<int> box;
int n;
while (x) {
cin >> n;
if (!box.empty()) if (signbit(n) != signbit(*(box.end() - 1))) --x;
if (x) box.push_back(n);
}
auto start = find_if(box.rbegin(), box.rend(), [](int a) { return a < 0; });
auto stop = find_if(start, box.rend(), [](int a) { return a >= 0; });
auto sum = accumulate(start, stop, 0LL);
cout << sum << endl;
system("pause");
}
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main() {
size_t x;
cin >> x;
auto signbit = [](int a) { return a < 0 ? -1 : 1; };
vector<int> box;
int n;
while (x) {
cin >> n;
if (!box.empty()) if (signbit(n) != signbit(*(box.end() - 1))) --x;
if (x) box.push_back(n);
}
auto start = find_if(box.rbegin(), box.rend(), [](int a) { return a < 0; });
auto stop = find_if(start, box.rend(), [](int a) { return a >= 0; });
auto sum = accumulate(start, stop, 0LL);
cout << sum << endl;
system("pause");
}
Sergey K.
Классно, лучше бы объяснили задание (
Всё просто. Задается с коавиатуры какое-то количество изменений знака в последовательности (каждое изменение - это когда ты после отрицательного числа вводишь неотрицательное или наооборот) после чего вводятся числа и при каждом таком изменении во вводимых числах добавлется единицу в счетчик. Как только число изменений достигнет заданного, прекращаем ввод. Кроме того, одновременно с подсчетом количества изменений знака чисел подсчитываем сумму последних подряд идущих отрицательных чисел. Вот и всё.
Это типа так программеров готовят в МГУ
Sergey K.
Ты удивишься, узнав, что это всего лишь престижный колледж
Konstantin Volodin
Я бы подопнул тому составляльщику заданий под пятую точку, мол хорош бухать во время работы! У меня ступор на первой строке.
Konstantin Volodin
Не, серьезно!. Стоит ли тебе учиться в месте где допустимое количество изменение знаков? uint32_t имеет один знак, но много значений. Короче говоря сделай то что ниже написал
Похожие вопросы
- Создание программ.
- Продаю программу с исходниками на Visual Basic 2008 за 50 руб.
- Помогите написать программу со switch в СИ
- Подскажите пожалуйста, на каком языке написана программа, на С или C++
- В какой программе это делали.
- Зачем от поступающих на программистов требуют сдавать профильную математику. Я посмотрела как пишутся программы на
- Очень срочно!!! Помогите с заданиями по ИНФОРМАТИКЕ, надо написать несколько программ:
- помогите написать простые программы на Qbasic
- Программа Паскаль.
- С помощью какой программы можно нарисовать такие картинки ?