Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Составить программу для с++ без функций

Дима Иванов Ученик (94), открыт 10 часов назад
написать самую простую программу для с++ по заданию: в одномерном массиве состоящем из n вещественных элементов вычислить 1) сумму элементов массива с нечетными номерами, 2) сумму элементов массива, расположенных между первым и последним отрицательными элементами. Сжать массив, удалив из него все элементы модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.
3 ответа
Богдан Емельянов Мастер (1537) 10 часов назад
#include <iostream>
#include <vector>

int main() {
int n;

// Ввод размера массива
std::cout << "Введите количество элементов в массиве: ";
std::cin >> n;

std::vector<double> array(n);

// Ввод элементов массива
std::cout << "Введите элементы массива:n";
for (int i = 0; i < n; ++i) {
std::cin >> array[i];
}

// 1) Сумма элементов массива с нечетными номерами
double sumOddIndices = 0.0;
for (int i = 1; i < n; i += 2) {
sumOddIndices += array[i];
}
std::cout << "Сумма элементов с нечетными индексами: " << sumOddIndices << std::endl;

// 2) Сумма элементов между первым и последним отрицательными элементами
int firstNegativeIndex = -1, lastNegativeIndex = -1;
for (int i = 0; i < n; ++i) {
if (array[i] < 0) {
if (firstNegativeIndex == -1) {
firstNegativeIndex = i;
}
lastNegativeIndex = i;
}
}

double sumBetweenNegatives = 0.0;
if (firstNegativeIndex != -1 && lastNegativeIndex != -1 && firstNegativeIndex != lastNegativeIndex) {
for (int i = firstNegativeIndex + 1; i < lastNegativeIndex; ++i) {
sumBetweenNegatives += array[i];
}
}
std::cout << "Сумма элементов между первым и последним отрицательными элементами: " << sumBetweenNegatives << std::endl;

// 3) Сжатие массива, удалив элементы, модуль которых не превышает 1
std::vector<double> compressedArray;
for (double value : array) {
if (std::abs(value) > 1) {
compressedArray.push_back(value);
}
}

// Заполнение "освобожденных" позиций нулями
compressedArray.resize(n, 0.0);

// Вывод сжатого массива
std::cout << "Сжатый массив:n";
for (double value : compressedArray) {
std::cout << value << " ";
}
std::cout << std::endl;

return 0;
}
nokio2025Гуру (3438) 10 часов назад
Фу бот
Богдан Емельянов Мастер (1537) nokio2025, батя твой бот, а я крутой парень
Николай Веселуха Высший разум (372566) 9 часов назад
 #include <cmath> 
#include <iomanip>
#include <iostream>
#include <random>

using namespace std;

int main() {
cout << "n: ";
size_t n;
cin >> n;
auto a = new(nothrow) double[n];
if (a == nullptr) {
puts("Недостаточно памяти!");
cin.ignore(0x1000, '\n');
cin.get();
exit(1);
}
uniform_int_distribution<> uid(-25, 25);
mt19937 gen{ random_device()() };
for (size_t i = 0; i < n; ++i) {
a[i] = uid(gen) / 10.0;
}
cout.setf(ios::fixed);
cout.precision(1);
for (size_t i = 0; i < n; ++i) {
cout << setw(5) << a[i];
}
cout.put('\n');
auto sum = 0.0;
for (auto i = 0; i < n; i += 2) {
sum += a[i];
}
cout << "Сумма элементов массива: " << sum << '\n';
size_t first = -1;
for (size_t i = 0; i < n; ++i) {
if (a[i] < 0) {
first = i;
break;
}
}
if (first == -1) {
puts("Отрицательные элементы не найдены!");
}
else {
size_t last = -1;
for (size_t i = n - 1; i != first; --i) {
if (a[i] < 0) {
last = i;
break;
}
}
if (first == last) {
puts("Найден только один отрицательный элемент!");
}
else if (first == last - 1) {
puts("Найдены только два отрицательных элемента.");
puts("Эти элементы расположены рядом!");
}
else {
sum = 0;
for (auto i = first + 1; i != last; ++i) {
sum += a[i];
}
cout << "Сумма элементов массива расположенных между первым и последним отрицательными элементами: " << sum << '\n';
}
}
size_t k = n;
for (size_t i = 0; i < n; ++i) {
if (fabs(a[i]) < 1.0) {
a[i] = 0;
--k;
}
}
size_t j = 0;
for (size_t i = 0; i < n; ++i) {
if (a[i] != 0) {
a[j++] = a[i];
}
}
for (size_t i = k; i < n; ++i) {
a[i] = 0;
}
puts("Массив после сжатия и замены нулями");
for (size_t i = 0; i < n; ++i) {
cout << setw(5) << a[i];
}
cout.put('\n');
n = k;
puts("Массив после сжатия");
for (size_t i = 0; i < n; ++i) {
cout << setw(5) << a[i];
}
cout.put('\n');
delete[] a;
}
TarinValdor Мыслитель (8359) 46 минут назад
 #include <iostream> 
#include <cmath>

int main() {
// Ввод размера массива
int n;
std::cout << "Введите размер массива: ";
std::cin >> n;

if (n <= 0) {
std::cout << "Размер массива должен быть больше 0." << std::endl;
return 1;
}

// Создание и заполнение массива
double arr[n];
std::cout << "Введите элементы массива: " << std::endl;
for (int i = 0; i < n; i++) {
std::cin >> arr[i];
}

// 1. Сумма элементов массива с нечетными номерами
double sum_odd_index = 0;
for (int i = 1; i < n; i += 2) {
sum_odd_index += arr[i];
}
std::cout << "Сумма элементов с нечетными номерами: " << sum_odd_index << std::endl;

// 2. Сумма элементов между первым и последним отрицательными элементами
int first_neg = -1, last_neg = -1;
for (int i = 0; i < n; i++) {
if (arr[i] < 0) {
if (first_neg == -1) {
first_neg = i;
}
last_neg = i;
}
}

double sum_between_neg = 0;
if (first_neg != -1 && last_neg != -1 && first_neg < last_neg) {
for (int i = first_neg + 1; i < last_neg; i++) {
sum_between_neg += arr[i];
}
}
std::cout << "Сумма элементов между первым и последним отрицательными: " << sum_between_neg << std::endl;

// 3. Сжатие массива
int new_size = 0; // Новый размер массива после удаления элементов
for (int i = 0; i < n; i++) {
if (std::fabs(arr[i]) > 1) {
arr[new_size++] = arr[i];
}
}

// Заполнение освободившихся элементов нулями
for (int i = new_size; i < n; i++) {
arr[i] = 0;
}

// Вывод сжатого массива
std::cout << "Сжатый массив: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;

return 0;
}
Похожие вопросы