Есть программа:
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
srand(time(NULL));
int i, a, b, size;
int* mass;
cout > size;
mass = new int[size];
for ( i = 0; i abs(mass[i+1]))
{
a = abs(mass[i]);
}
}
cout << "Минимальный по модулю член массива - " << a << endl;
b = 0;
for ( i=0; i < size; i++){
if (mass[i] == 0){b = i ; break ; }
}
for ( i=b; i < size; i++){
a = a+abs(mass[i]);
}
cout <<"Сумма модулей элементов массива после 0 - " << a << endl;
cout <<"Преобразованный массив - ";
for ( i=0; i < size; i = i+2){
cout << mass[i]<<" ";
}
cout << " | ";
for ( i=1; i < size; i = i+2){
cout << mass[i]<<" ";
}
cout << endl;
}
Она задаёт одномерный массив и выполняет с ним 2 действия: находит меньший по модулю элемент и сумму модулей элементов после нуля. Эти 2 действия нужно написать в виде функций (по заданию), но когда я это делаю, то обоссаный компилятор начинает подчёркивать всё подряд. Скрин прикреплю. Просьба написать, как это должно выглядеть (и почему не работает мой вариант)

#include <iostream>
#include <random>
#include <iomanip>
#include <utility>
#include <cstdlib>
using namespace std;
int rndi(const uniform_int_distribution<>& uid) {
random_device rd;
mt19937_64 gen(rd());
return uid(gen);
}
void fill(int* a, const size_t size, int l, int r) {
if (l > r) swap(l, r);
const uniform_int_distribution<> uid(l, r);
for (size_t i = 0; i < size; ++i) a[i] = rndi(uid);
}
void show(int* a, const size_t size, const streamsize w = 4) {
for (size_t i = 0; i < size; ++i) cout << setw(w) << a[i];
cout.put('\n');
}
int min_element(int* a, const size_t size) {
auto me = abs(a[0]);
for (size_t i = 1; i < size; ++i) if (abs(a[i]) < me) me = abs(a[i]);
return me;
}
long long sum(int* a, const size_t size, const int n = 0) {
long long sum = 0;
size_t i = 0;
while (i < size && a[i] != n) ++i;
while (i < size) sum += abs(a[i++]);
return sum;
}
int main() {
const size_t size = 20;
int a[size];
fill(a, size, -50, 50);
show(a, size);
cout << " Min abs: " << min_element(a, size) << endl;
const auto s = sum(a, size);
if (s != 0) cout << " Sum: " << s;
else cout << " Zero is not found!";
cout.put('\n');
system("pause");
}
Закинь код на pastebin.ru или ещё куда-нибудь (например, mail-облако). "Ответы" портят текст. Или надо вставлять пробел после символа < , если за ним следует буква.