Консультация № 144389
19.09.2008, 14:07
0.00 руб.
0 3 3
Доброго вам времени суток. Напишите пожалуйста программу, которая выводит на экран все значения
массива, которые больше среднего арифметического.
Спасибо вам за то, что вы есть.

Обсуждение

Неизвестный
19.09.2008, 16:18
общий
это ответ
Здравствуйте!

Вот один из вариантов с использованием STL
Ввод осуществляется до ввода нуля.


Приложение:
#include <iostream>
#include <vector>
#include <numeric>


int _tmain(int argc, _TCHAR* argv[])
{
// ввод чисел, до ввода нуля
std::cout << "Input numbers, 0 for end\n";
std::vector<int> nums;
for(;;){
int inputnum;
std::cin >> inputnum;
if(!inputnum)
break; // ввели ноль - заканчиваем ввод
nums.push_back(inputnum);
}

if(nums.empty()){
std::cout << "Need any numbers\n";
return 0; // ничего не ввели
}

float avg = (float)std::accumulate(nums.begin(),nums.end(), 0) / nums.size();
std::cout
<< "Average value: " << avg << "\n"
<< "Number greater when average:\n";
std::vector<int>::const_iterator it = nums.begin();
for(; it != nums.end(); ++it)
if(*it > avg)
std::cout << *it << ", ";
}
Неизвестный
19.09.2008, 16:32
общий
это ответ
Здравствуйте, !

Код С++ программы в приложении. Будут вопросы по коду - задавайте в мини-форум вопроса.



Приложение:
//Заголовок потокового ввода/вывода
#include <iostream>
//Заголовок манипуляторов ввода/вывода
#include <iomanip>

using namespace std;

int main()
{
//Объявляем массив целых чисел на 10 элементов;
int mas[10];
//Объявляем переменную размерности
int size = 0;

//Приглашение ввести значение размерности
cout << "Vvedyte razmernost' masyva: ";

//Ввод значения размерности
cin >> size;

cout << endl;

cout << " Zapolnit' masyv: \n"
<< " ---------------- \n"
<< " Vruchnuyu - 1 \n"
<< " Avtomatychesky - 2 \n"
<< " : ";

//Объяаляем переменную выбора
int sw;

//Вводим значение выбора
cin >> sw;

cout << endl;

//Оператор "switch"
switch(sw)
{
//Если значение переменной выбора 1, то вводим элементы массива вручную
case 1: for(int i = 0; i < size; i++)
{
cout << " el.of mas[" << i << "]: ";

cin >> mas[i];
}

break;

//Если значение переменной выбора 2, то заполнение массива будет атоматическим
case 2: for(int i = 0; i < size; i++)
{
mas[i] = rand() % 100 - 50;
}

break;
}

cout << endl << " Nachalnuy masyv: " << endl << endl;

//Вывод массива на экран
for(int i = 0; i < size; i++)
{
cout << " " << mas[i] << setw(3);
}

cout << endl << endl;

//Объявляем переменную среднего арифм. значения
int sr_znach = 0;

//Объявляем переменную суммы
int summa = 0;

for(int i = 0; i < size; i++)
{
//Пошаговое прибавление всех значений массива, которые больше среднего арифметического к переменной summa
summa += mas[i];

//Считаем среднее арифметическое значение
sr_znach = (summa / size);
}

cout << " Summa vseh elementov massyva: " << summa << endl << endl;

cout << " Srednee aryfmetycheskoe znachenye elementov massyva: " << sr_znach << endl << endl;

cout << " Znachenya massyva kotorye bol'she srednego aryfmetycheskogo: " << endl << endl
<< " >>> ";

//Выводим все значения массива, которые больше среднего арифметического
for(int i = 0; i < size; i++)
{
if(sr_znach < mas[i]) cout << mas[i] << setw(3);
}

cout << endl << endl;

return 0;
}
Неизвестный
20.09.2008, 01:02
общий
это ответ
Доброго вам времени суток, k800ise!
Код в приложении.


Приложение:
//Содержит ввод-вывод
#include <iostream>
//Файлы необходимы для работы функции rand()-генератора случайных чисел
#include <time.h>
#include <stdlib.h>

using namespace std;
int main()
{
//Ввод размера массива
int n;
cout<<"BBeduTe PA3MEP MACCuBA: ";
cin>>n;
cout<<"\n";

int* mas=new int[n]; //создается новый массив из "кучи" размерностью n
int middle, //среднее арифметическое
sum=0; //сумма элементов

//Заполнение массива и его вывод
for(int i=0; i<n; i++) {
//rand() заполняет массив случайнымичислами
mas[i]=rand()%25;
sum+=mas[i];
cout<<mas[i]<<" ";}
cout<<"\n\n";

//Считается среднее арифметическое
middle=sum/n;

//Вывод значения среднего арифметического
cout<<"CPEDHEE APuFMETu4ECKOE PABHO: "<<middle<<"\n\n";

//Вывод элементов, меньших среднего арифметического
cout<<"ELEMEHTbI, BOL'IIIuE CPEDHEGO APuFMETu4ECKOGO: "<<"\n\n";
for(int i=0; i<n; i++) {
if (mas[i]>middle) cout<<mas[i]<<" ";}

return 0;
}
Форма ответа