Я должен ввести строку.
Программа должна вычислять среднее арифметическое положительных чисел и отрицательных чисел.
Дайте пожалуйста пример через for
Другие языки программирования и технологии
Ребятки пожалуйста помогите (C++)
А через while не подойдёт?
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <numeric>
using namespace std;
int main() {
setlocale(LC_CTYPE, "Russian");
cout << " Введите строку: ";
string line;
getline(cin, line);
istringstream iss(line);
double number;
vector<double> pos;
vector<double> neg;
while (iss >> number) {
if (number < 0) neg.push_back(number);
else pos.push_back(number);
}
double sum_neg = accumulate(neg.begin(), neg.end(), 0.);
double sum_pos = accumulate(pos.begin(), pos.end(), 0.);
if (neg.size()) {
double avg_neg = sum_neg / neg.size();
cout << " Среднее для отрицательных: " << avg_neg << endl;
} else cout << " Отрицательных чисел в строке нет! \n";
if (pos.size()) {
double avg_pos = sum_pos / pos.size();
cout << " Среднее для положительных: " << avg_pos << endl;
} else cout << " Положительных чисел в строке нет! \n";
cin.sync();
cin.get();
}
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <numeric>
using namespace std;
int main() {
setlocale(LC_CTYPE, "Russian");
cout << " Введите строку: ";
string line;
getline(cin, line);
istringstream iss(line);
double number;
vector<double> pos;
vector<double> neg;
while (iss >> number) {
if (number < 0) neg.push_back(number);
else pos.push_back(number);
}
double sum_neg = accumulate(neg.begin(), neg.end(), 0.);
double sum_pos = accumulate(pos.begin(), pos.end(), 0.);
if (neg.size()) {
double avg_neg = sum_neg / neg.size();
cout << " Среднее для отрицательных: " << avg_neg << endl;
} else cout << " Отрицательных чисел в строке нет! \n";
if (pos.size()) {
double avg_pos = sum_pos / pos.size();
cout << " Среднее для положительных: " << avg_pos << endl;
} else cout << " Положительных чисел в строке нет! \n";
cin.sync();
cin.get();
}
Amirkhamza Radjabov
Ужс, как всё трудно
Не знаю как сделать что бы выводило строку, а не столбец вводимых чисел. Поэтому пришлось сделать так что бы писало: 1 число: вводишь число; 2 число: вводишь число и т. д.
Вот сам код:
#include "stdafx.h"
#include < iostream >
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
long double x;
long double pol = 0, otr = 0;
long int n, sch1 = 0, sch2 = 0;
cout << "Сколько чисел вы хотите ввести? - ";
cin >> n;
if (n <= 0)
{
cout << "Не может быть введено " << n << " чисел. " << endl;
return 0;
}
for (int i = 1; i <= n; i++)
{
cout << i << "-ое число: ";
cin >> x;
if (x > 0)
{
pol = pol + x;
sch1++;
}
if (x < 0)
{
otr = otr + x;
sch2++;
}
}
if (sch2 == 0)
{
cout << "Отрицательных чисел не было введено. " << endl;
}
else
{
cout << "Среднее арифметическое отрицательных чисел равно: " << otr / sch2 << endl;
}
if (sch1 == 0)
{
cout << "Положительных чисел не было введено. " << endl;
}
else
{
cout << "Среднее арифметическое положительных чисел равно: " << pol / sch1 << endl;
}
if (sch1 == 0 & sch2 == 0)
{
cout << "Не было введено ни положительных ни отрицательных чисел" << endl;
}
return 0;
}
Вот сам код:
#include "stdafx.h"
#include < iostream >
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
long double x;
long double pol = 0, otr = 0;
long int n, sch1 = 0, sch2 = 0;
cout << "Сколько чисел вы хотите ввести? - ";
cin >> n;
if (n <= 0)
{
cout << "Не может быть введено " << n << " чисел. " << endl;
return 0;
}
for (int i = 1; i <= n; i++)
{
cout << i << "-ое число: ";
cin >> x;
if (x > 0)
{
pol = pol + x;
sch1++;
}
if (x < 0)
{
otr = otr + x;
sch2++;
}
}
if (sch2 == 0)
{
cout << "Отрицательных чисел не было введено. " << endl;
}
else
{
cout << "Среднее арифметическое отрицательных чисел равно: " << otr / sch2 << endl;
}
if (sch1 == 0)
{
cout << "Положительных чисел не было введено. " << endl;
}
else
{
cout << "Среднее арифметическое положительных чисел равно: " << pol / sch1 << endl;
}
if (sch1 == 0 & sch2 == 0)
{
cout << "Не было введено ни положительных ни отрицательных чисел" << endl;
}
return 0;
}
Куат Карбала
cin >> - это ввод значения; Как ты собираешься вводить числа без этой функции?? Я кстати тоже первокурсник, странно как то вас обучают.
Похожие вопросы
- Пожалуйста помогите,C++ .Дана последовательность чисел.Найти в ней наименьшее число.
- Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
- Пожалуйста! Помогите выбрать: java или c
- C++ массивы. Пожалуйста, помогите!
- Можете пожалуйста помочь с программой на C++.
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- помогите пожалуйста с C#
- Помогите пожалуйста оптимизировать C++ код
- Пожалуйста, помогите с программой C++
- Подскажите, пожалуйста. Язык C++