Что тут не так?
#include
using namespace std;
int main()
{
setlocale(0, ".1251");
int N = 9;
double a[9], b[9];
double max_a = a[0], max_b = b[0];
cout << " Ввести массив : ";
for (int i = 0; i < N; i++) {
cin >> a[i];
if (a[i] > max_a) {
max_a = a[i];
}
}
int rol = max_a;
for (int j = 0; j < N; j++) {
cin >> b[j];
if (b[j] > max_b) {
max_b = b[j];
}
}
max_a = max_b;
cout << " Massiv a = " " " << max_a << endl;
max_b = rol;
cout << "Massiv b = " " " << max_b << endl;
cin.get();
cin.get();
return 0;
}
C/C++
Вычислить модуль суммы всех отрицательных элементов, сумму всех положительных и разницу между значениями этих сумм
#include <algorithm>
#include <iostream>
#include <array>
#include <numeric>
using namespace std;
int main() {
system("chcp 1251 > nul");
array<double, 9> box;
auto add = [](double& x) { cin >> x; };
cout << "Введите массив: ";
for_each(box.begin(), box.end(), add);
auto neg = [](double a, double x) { return x < 0? a + x : a; };
auto negs = fabs(accumulate(box.begin(), box.end(), 0., neg));
cout << "Сумма модулей отрицательных значений: " << negs << '\n';
auto pos = [](double a, double x) { return x > 0? a + x : a; };
auto poss = accumulate(box.begin(), box.end(), 0., pos);
cout << "Сумма положительных значений: " << poss << '\n';
auto diff = fabs(negs - poss);
cout << "Разница между значенями сумм: " << diff << endl;
system("pause > nul");
}
#include <iostream>
#include <array>
#include <numeric>
using namespace std;
int main() {
system("chcp 1251 > nul");
array<double, 9> box;
auto add = [](double& x) { cin >> x; };
cout << "Введите массив: ";
for_each(box.begin(), box.end(), add);
auto neg = [](double a, double x) { return x < 0? a + x : a; };
auto negs = fabs(accumulate(box.begin(), box.end(), 0., neg));
cout << "Сумма модулей отрицательных значений: " << negs << '\n';
auto pos = [](double a, double x) { return x > 0? a + x : a; };
auto poss = accumulate(box.begin(), box.end(), 0., pos);
cout << "Сумма положительных значений: " << poss << '\n';
auto diff = fabs(negs - poss);
cout << "Разница между значенями сумм: " << diff << endl;
system("pause > nul");
}
В алгоритме решена не та задача:
у тебя должен быть массив с "+" и "-" элементами
ты его проходишь циклом и проверяешь каждый элемент
если число "<0" то складываешь его в переменную для всех отрицательных элементов пусть это X
если число ">=0" то складываешь его в переменную для всех положительных элементов пусть это Y
после цикла выводишь в cout
X, Y, mod(X-Y)
у тебя должен быть массив с "+" и "-" элементами
ты его проходишь циклом и проверяешь каждый элемент
если число "<0" то складываешь его в переменную для всех отрицательных элементов пусть это X
если число ">=0" то складываешь его в переменную для всех положительных элементов пусть это Y
после цикла выводишь в cout
X, Y, mod(X-Y)
1. Код должен быть рабочим, хоть там куча лишних действий и... зачем там ДВА cin.get();?
2. Код ищет максимальные элементы массива, то есть максимальное число в массиве, а у тебя их 2.
3. Ноль не отрицательное число и не положительное, как я понимаю, его не стоит учитывать, в таком случае код будет таким:
#include "cmath"
#include "iostream"
using namespace std;
int main(void)
{
int size;
cin >> size;
int posled[size];
for(int i=0; i> posled[i];
}
int polozhit=0, otricat=0, nuli=0;
for(int i=0; i0)
{
polozhit+=posled[i];
}
else if(posled[i]<0)
{
otricat+=posled[i];
}
else if(posled[i]==0)//Как бонус количество нулей в последовательности
{
nuli++;
}
}
//cout << "\nSumma otricat= " << (otricat*(-1)) << "\n Summa polozhit " << polozhit << "\n Kolichestvo nulei " << nuli;//Это без библиотеки cmath
cout << "\nSumma otricat= " << abs(otricat) << "\n Summa polozhit " << polozhit << "\n Kolichestvo nulei " << nuli;
return 0;
}
Писал "на коленке", код не тестировал, но должен работать.
2. Код ищет максимальные элементы массива, то есть максимальное число в массиве, а у тебя их 2.
3. Ноль не отрицательное число и не положительное, как я понимаю, его не стоит учитывать, в таком случае код будет таким:
#include "cmath"
#include "iostream"
using namespace std;
int main(void)
{
int size;
cin >> size;
int posled[size];
for(int i=0; i> posled[i];
}
int polozhit=0, otricat=0, nuli=0;
for(int i=0; i0)
{
polozhit+=posled[i];
}
else if(posled[i]<0)
{
otricat+=posled[i];
}
else if(posled[i]==0)//Как бонус количество нулей в последовательности
{
nuli++;
}
}
//cout << "\nSumma otricat= " << (otricat*(-1)) << "\n Summa polozhit " << polozhit << "\n Kolichestvo nulei " << nuli;//Это без библиотеки cmath
cout << "\nSumma otricat= " << abs(otricat) << "\n Summa polozhit " << polozhit << "\n Kolichestvo nulei " << nuli;
return 0;
}
Писал "на коленке", код не тестировал, но должен работать.
Miwanja Silivanov
Код протестировал, работает нормально. Сам сможешь разобраться в коде?
Похожие вопросы
- Создание программы на вычисление большего количества положительных или отрицательных элементов в среде c++
- Не могу разобраться. Функция удаления отрицательных элементов вектора
- Код работает некорректно. Язык Си. Нахождение максимального отрицательного элемента матрицы и замена его числом.
- Написать программу на C/C++. Найти количество отрицательных элементов под побочной диагональю.
- Составить программу. В одномерном массиве произвольных чисел вычислить произведения четных и нечетных элементов.
- В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива
- Дана матрица nxn, вычислить суммы диагональных элементов( главной и побочной ) отдельно, но в одной функции на языке си.
- Вычислить для заданного значения ? сумму вида.
- Вывести сумму тех элементов каждой строки, которые расположены правее максимального и левее минимального.
- Работа с матрицами. Нужно найти сумму элементов каждой строки. Помогите пожалуйста ????????