Если вы ещё не знакомы с массивами, воспользуйтесь нашей статьей — организация массивов в С++. В любом случае работа с массивами подразумевает знание циклов в С++, если вы ещё не умеете пользоваться циклами, обратитесь к следующим статьям: цикл for, цикл с постусловием do while, цикл с предусловием while.
Кроме всего этого, наверное у вас возникает вопрос: «Как в С++ вычислить модуль числа?». Справедливый вопрос, ответ на который вы можете найти, изучив функцию fabs для вещественных чисел и функцию abs — для целочисленных значений. Результат работы программы показан ниже:
// sum_squares.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
srand(time(NULL));
setlocale(LC_ALL, "rus");
unsigned length_array = 0; // длинна массива
cout << "Введите длинну массива: ";
cin >> length_array;
// объявление одномерного динамического массива на 10 элементов:
float *ptrarray = new float [length_array];
float sum = 0; // сумма квадратов чисел
for (unsigned counter = 0; counter < length_array; counter++)
{
ptrarray[counter] = (float)(rand() % 100) / (rand() % 100 + 1); // заполняем массив случайными числами в диапазоне [0;99]
cout << fixed << setprecision(2) << ptrarray[counter] << " ";
}
cout << endl;
for (unsigned counter = 0; counter < length_array; counter++)
if (abs(ptrarray[counter]) > 2.5)
sum += pow(ptrarray[counter],2);
// высвобождение памяти отводимой под одномерный динамический массив:
delete [] ptrarray;
cout << "Сумма = " << sum << endl;
system("pause");
return 0;
}
Пример работы программы:
Введите длинну массива: 10
1.09 0.24 0.96 0.86 1.40 1.01 3.00 0.97 19.00 5.80
Сумма = 403.64
Комментарии
sscys
Решение без массива
#include <iostream> #include <cmath> #include <ctime> using namespace std; int main() { setlocale (LC_ALL, "rus"); srand(time(NULL)); double d_size,//размер массива. вводится пользователем d_number,//генерируемая переменная d_summ(0); //сумма cout << "\tВведите количество членов массива "; cin >> d_size; cout << endl; cout << "\tСгенерированная последовательность \n"; for (int i = 0; i < d_size; i++){ d_number = (-50 + rand () % 100) / 10.0;// генератор дробных чисел в диапазоне от - 5 до 5 cout << " " << d_number << " |"; //вывод на экран последовательности сгенерированных чисел if (fabs (d_number) > 2.5) // если модуль числа больше 2.5 d_summ += pow (d_number,2); } cout << endl; cout << "\tСумма квадратов чисел, модуль которых превышает значение 2,5 = " << d_summ; // вывод на печать cout << endl; return 0; }sscys
/*Дан одномерный массив, длину массива задаёт пользователь. Вычислить сумму квадратов тех чисел, модуль которых превышает значение 2,5.*/ #include <iostream> #include <cmath> #include <vector> #include <ctime> using namespace std; void print(vector <double> vd_arrage1, double d_summ1); //фунция вывода на печать int main() { setlocale (LC_ALL, "rus"); srand(time(NULL)); double d_size,//размер массива. вводится пользователем d_number,//генерируемая переменная d_summ(0); //сумма vector<double> vd_arrage;//массив в который заносятся квадраты чисел cout << "\tВведите количество членов массива "; cin >> d_size; cout << endl; cout << "\tСгенерированная последовательность \n"; for (int i = 0; i < d_size; i++){ d_number = (-50 + rand () % 100) / 10.0;// генератор дробных чисел в диапазоне от - 5 до 5 cout << " " << d_number << " |"; //вывод на экран последовательности сгенерированных чисел if (fabs (d_number) > 2.5){ // если модуль числа больше 2.5 d_number *= d_number; // вычисление квадрата vd_arrage.push_back (d_number);// добавление в массив d_summ += d_number; } } cout << endl; print( vd_arrage,d_summ); // вывод на печать return 0; } void print(vector <double> vd_arrage1, double d_summ1) { cout << "\tМассив квадратов чисел, модуль которых превышает значение 2,5 \n"; for (int i = 0; i < vd_arrage1.size(); i++) cout << " " << vd_arrage1[i] << " |"; cout << endl; cout << "\tСумма квадратов чисел, модуль которых превышает значение 2,5 = " << d_summ1; cout << endl; }