C/C++
Рост студентов представить в виде массива.
Рост студентов представить в виде массива. Рост девушек закодировать со знаком ''-'', а рост юношей со знаком ''+''. Определить средний рост мальчиков.
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <array>
#include <numeric>
using namespace std;
int main() {
system("chcp 1251 > nul");
array<int, 99U> group;
cout << "Введите количество студентов в группе: ";
size_t quantity;
cin >> quantity;
if (!quantity) exit(0);
puts("Вводите рост студентов в сантиметрах: ");
for (auto i = 0U; i < quantity; ++i) {
cout << setw(3U) << i + 1 << ". ";
cin >> group[i];
}
auto sum_male = [](double a, int b) { return b > 0? a + b : a; };
auto sum = accumulate(begin(group), end(group), 0.0, sum_male);
auto only_male = [](int x) { return x > 0; };
auto n = count_if(begin(group), end(group), only_male);
auto avg = sum / n;
cout << "Average: " << fixed << setprecision(1) << avg << '\n';
system("pause > nul");
}
#include <iostream>
#include <iomanip>
#include <array>
#include <numeric>
using namespace std;
int main() {
system("chcp 1251 > nul");
array<int, 99U> group;
cout << "Введите количество студентов в группе: ";
size_t quantity;
cin >> quantity;
if (!quantity) exit(0);
puts("Вводите рост студентов в сантиметрах: ");
for (auto i = 0U; i < quantity; ++i) {
cout << setw(3U) << i + 1 << ". ";
cin >> group[i];
}
auto sum_male = [](double a, int b) { return b > 0? a + b : a; };
auto sum = accumulate(begin(group), end(group), 0.0, sum_male);
auto only_male = [](int x) { return x > 0; };
auto n = count_if(begin(group), end(group), only_male);
auto avg = sum / n;
cout << "Average: " << fixed << setprecision(1) << avg << '\n';
system("pause > nul");
}
#include <iostream>
using namespace std;
int main()
{
int n;
do
{
cout << "Введите количество студентов: ";
cin >> n;
}while(n < 2);
char ** s;
s = new char*[n];
for(int x = 0; x < n; x++)
s[x] = new char[5]; // будет сначала знак + или -, потом 3 цифры -- рост
int tmp,sum = 0,count = 0;
for(int x = 0; x < n; x++)
{
cout << "Введите рост " << x + 1 << " студента: ";
cin >> s[x];
if(s[x][0] == '+')
{
int i = 1;
tmp = 0;
while(s[x][i])
{
tmp *= 10;
tmp += (s[x][i] - '0');
i++;
}
count++;
sum += tmp;
}
}
if(count)
{
cout << "Средний рост мальчиков равен ";
cout << static_cast<float>(sum) / static_cast<float>(count);
cout << "." << endl;
}
else
{
cout << "Мальчиков нет." << endl;
}
if(s != (char**) nullptr)
{
for(int x = 0; x < n; x++)
{
if(s[x] != (char*) nullptr)
{
delete [] s[x];
s[x] = (char*) nullptr;
}
}
delete [] s;
s = (char**) nullptr;
return 0;
}
return 1;
}
/*
вот как я вводил данные:
Введите количество студентов: 4
Введите рост 1 студента: -175
Введите рост 2 студента: +188
Введите рост 3 студента: -166
Введите рост 4 студента: +176
Средний рост мальчиков равен 182.
*/
using namespace std;
int main()
{
int n;
do
{
cout << "Введите количество студентов: ";
cin >> n;
}while(n < 2);
char ** s;
s = new char*[n];
for(int x = 0; x < n; x++)
s[x] = new char[5]; // будет сначала знак + или -, потом 3 цифры -- рост
int tmp,sum = 0,count = 0;
for(int x = 0; x < n; x++)
{
cout << "Введите рост " << x + 1 << " студента: ";
cin >> s[x];
if(s[x][0] == '+')
{
int i = 1;
tmp = 0;
while(s[x][i])
{
tmp *= 10;
tmp += (s[x][i] - '0');
i++;
}
count++;
sum += tmp;
}
}
if(count)
{
cout << "Средний рост мальчиков равен ";
cout << static_cast<float>(sum) / static_cast<float>(count);
cout << "." << endl;
}
else
{
cout << "Мальчиков нет." << endl;
}
if(s != (char**) nullptr)
{
for(int x = 0; x < n; x++)
{
if(s[x] != (char*) nullptr)
{
delete [] s[x];
s[x] = (char*) nullptr;
}
}
delete [] s;
s = (char**) nullptr;
return 0;
}
return 1;
}
/*
вот как я вводил данные:
Введите количество студентов: 4
Введите рост 1 студента: -175
Введите рост 2 студента: +188
Введите рост 3 студента: -166
Введите рост 4 студента: +176
Средний рост мальчиков равен 182.
*/
Денис Гавкин
Дружище спасибо тебе. Ты впрям спас мою шкуру.
Похожие вопросы
- Заменить нулями элементы массива, которые расположены между первым минимальным и последним максимальным элементами масси
- Помогите исправить и дописать программу с массивами на языке C++. Буду благодарен, т. к. самому уже не понятно.
- Нужна помощь в составлении одномерных массивов С++
- Кольцевой сдвиг массива
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.
- Устройство статических и динамических массивов в оперативной памяти (...)
- Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел
- Помогите пожалуйста - создать 4 массива на c++
- Помощь с Массивами C++
- Двумерный динамический массив с неизвестны количеством столбиков или строк