#include <iostream>
#include <locale>
#include <fstream>
using namespace std;
bool readFile(char*fname, int*a, int&n) {
ifstream fin;
fin.open(fname);
if (!fin) return 0;
fin >> n;
a = new int[n];
for (int i = 0; i < n; i++)
fin >> a[i];
fin.close();
return 1;
}
int pr(int * a, int n)
//Функция вычисления произведения четных элементов
{
int preven = 1;
for (int i = 0; i < n-1; i++) {
if (a[i+1]%2 == 0)
preven*= a[i];
}
return preven;
}
int zerosum(int * a, int n)
{
int i1, i2;
int sum;
sum = 0;
i1 = 1;
i2 = 1;
for (int i = 0; i<n; i++)
if (a [i] == 0){
if (i1 != 0)
i1 = 0;
else
i2 = 0;};
for (i1<=i2; i1++;)
sum = sum+a[i1];
return sum;
}
void sort(int *a, int n)
{
for (int i = 0; i < n - 1; i++) // i - номер прохода
{
for (int j = 0; j < n - 1; j++) // внутренний цикл прохода
{
if (a[j] < a[j+1])
{
swap(a[j + 1], a[j]);
}
}
}
for (int i = 0; i < n; i++)
cout << a[i] << "\t";
}
int main() {
setlocale(LC_ALL, "");
int n;
int *a = new int;
char fname[10];
cout << "fname="; cin >> fname;
if (!readFile(fname, a, n)) {
cout << "nofile\n";
return 0;
}
for (int i=0; i<n; i++)
cout << a[i];
cout << endl;
cout << "Произведение четных элементов равно " << pr(a, n) << endl;
cout << "Сумма элементов между первым и последним нулевыми элементами равна " << zerosum(a, n) << endl;
sort(a, n);
cout << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bG9jYWxlPgojaW5jbHVkZSA8ZnN0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgcmVhZEZpbGUoY2hhcipmbmFtZSwgaW50KmEsIGludCZuKSB7CglpZnN0cmVhbSBmaW47CglmaW4ub3BlbihmbmFtZSk7CglpZiAoIWZpbikgcmV0dXJuIDA7CglmaW4gPj4gbjsKCWEgPSBuZXcgaW50W25dOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJZmluID4+IGFbaV07CgoJZmluLmNsb3NlKCk7CglyZXR1cm4gMTsKfQoKCgppbnQgcHIoaW50ICogYSwgaW50IG4pCi8v0KTRg9C90LrRhtC40Y8g0LLRi9GH0LjRgdC70LXQvdC40Y8g0L/RgNC+0LjQt9Cy0LXQtNC10L3QuNGPINGH0LXRgtC90YvRhSDRjdC70LXQvNC10L3RgtC+0LIKewoJaW50IHByZXZlbiA9IDE7Cglmb3IgKGludCBpID0gMDsgaSA8IG4tMTsgaSsrKSB7CgkJaWYgKGFbaSsxXSUyID09IDApCgkJCXByZXZlbio9IGFbaV07Cgl9CglyZXR1cm4gcHJldmVuOwp9CmludCB6ZXJvc3VtKGludCAqIGEsIGludCBuKQp7CmludCBpMSwgaTI7CmludCBzdW07CnN1bSA9IDA7CmkxID0gMTsKaTIgPSAxOwpmb3IgKGludCBpID0gMDsgaTxuOyBpKyspCiAgICBpZiAoYSBbaV0gPT0gMCl7CiAgICAgICAgaWYgKGkxICE9IDApCiAgICAgICAgICAgIGkxID0gMDsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGkyID0gMDt9Owpmb3IgKGkxPD1pMjsgaTErKzspCiAgICBzdW0gPSBzdW0rYVtpMV07CnJldHVybiBzdW07Cn0KCnZvaWQgc29ydChpbnQgKmEsIGludCBuKQp7Cglmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyBpKyspIC8vIGkgLSDQvdC+0LzQtdGAINC/0YDQvtGF0L7QtNCwCgl7CgkJZm9yIChpbnQgaiA9IDA7IGogPCBuIC0gMTsgaisrKSAvLyDQstC90YPRgtGA0LXQvdC90LjQuSDRhtC40LrQuyDQv9GA0L7RhdC+0LTQsAoJCXsKCQkJaWYgKGFbal0gPCBhW2orMV0pCgkJCXsKCQkJCXN3YXAoYVtqICsgMV0sIGFbal0pOwoJCQl9CgkJfQoJfQoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJY291dCA8PCBhW2ldIDw8ICJcdCI7Cn0KaW50IG1haW4oKSB7CglzZXRsb2NhbGUoTENfQUxMLCAiIik7CglpbnQgbjsKCWludCAqYSA9IG5ldyBpbnQ7CgoJY2hhciBmbmFtZVsxMF07Cgljb3V0IDw8ICJmbmFtZT0iOyBjaW4gPj4gZm5hbWU7CglpZiAoIXJlYWRGaWxlKGZuYW1lLCBhLCBuKSkgewoJCWNvdXQgPDwgIm5vZmlsZVxuIjsKCQlyZXR1cm4gMDsKCX0KICAgIGZvciAoaW50IGk9MDsgaTxuOyBpKyspCiAgICAgICAgY291dCA8PCBhW2ldOwogICAgY291dCA8PCBlbmRsOwoJY291dCA8PCAi0J/RgNC+0LjQt9Cy0LXQtNC10L3QuNC1INGH0LXRgtC90YvRhSDRjdC70LXQvNC10L3RgtC+0LIg0YDQsNCy0L3QviAiIDw8IHByKGEsIG4pIDw8IGVuZGw7CgoJY291dCA8PCAi0KHRg9C80LzQsCDRjdC70LXQvNC10L3RgtC+0LIg0LzQtdC20LTRgyDQv9C10YDQstGL0Lwg0Lgg0L/QvtGB0LvQtdC00L3QuNC8INC90YPQu9C10LLRi9C80Lgg0Y3Qu9C10LzQtdC90YLQsNC80Lgg0YDQsNCy0L3QsCAiIDw8IHplcm9zdW0oYSwgbikgPDwgZW5kbDsKCXNvcnQoYSwgbik7Cgljb3V0IDw8IGVuZGw7Cn0K