помогите с решением задачи по C++

компьютеры программирование C++ массивы

1. найти минимальный по модулю элемент массива
2. необходимо найти сумму модулей элементов массива, расположенных после первого элемента, равного нулю. Далее преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоящие в четных позициях, а во второй половине - стоящие в нечетных позициях
3. после выполнения, программа должна сама сохраниться в текстовый документ, если такое возможно.

решение первого условия:
include <stdio.h>
int main(void)
{
int min=mas[0];
for(int i=0;i<n;i++)
if(min>mas[i])
min=mas[i];

решение второго условия:
#include <iostream>
using namespace std;

int main()
{
// ввод
size_t i, n; cout << "N = "; cin >> n; if(n==0) return -1;

int *arr = new int[n];
cout << "Array: "; for(i=0; i<n; i++) cin >> arr[i];

// сумма
for(i=0; arr[i] && i<n; i++); // пропускаем элементы до 0
int sum = 0; while( ++i < n ) sum += arr[i]<0 ? -arr[i] : arr[i];

// преобразование
int *tmp = new int[n], *ptr = tmp;
for(i=1; i<n; ++ptr, i+=2) *ptr = arr[i]; // проходим по четным номерам
for(i=0; i<n; ++ptr, i+=2) *ptr = arr[i]; // по нечетным
delete[] arr; arr = tmp;

// вывод
cout << "S = " << sum << endl;

for(i=0; i<n; i++) cout << tmp[i] << " "; cout << endl;
delete[] arr;

return 0;
}

как слепить два условия в одну программу? и с сохранением проблемы...
помогите пожалуйста

Примечание:
да, в третьем необходимо сохранить отсортированный массив.

#include <fstream>
void main()
{
const int N = 10;
int a[N];
ofstream out("file.txt"); // открываем поток
if(out.open()) { //Проверка открылся ли файл
for(int i = 0; i < N;i++) out << a[i]; //запись
out.close();//по завершению закрываем файл
}

можно ли использовать такой способ?

сам крайне плохо разбираюсь в C++
Ответы:
первое неправильно, сравниваешь не по модулю.
Вам просто необходимо использовать свои функции. Первое задание вынести в одну функцию, вторую - во вторую. Третье осталось непонятным. Подразумевается сохранение исходного кода программы или массива к концу выполнения. Если массива, то решение приблизительно такое:
//---------------------------------------------------------------------------
int SaveArrToFile(int* arr,int len){
FILE *file;
char* temp_str = new char [16];
file = fopen(&quot;file.txt&quot;,&quot;w+&quot;);
Я не изучал такую работу с файлами,однако мой преподаватель сказал, что реализовать такое можно =). И это похожу на правду.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.