C/C++
Если нолик получаешь, добавляешь в конечный массив ср арифметическое и обнуляешь счетчики и продолжаешь. Задание согласен непонятное, если у тебя начало обучения 1 курс универа например, то нужно просто ср всех чисел исключая нули, если нет то как я написал - ср арф каждого набора.
Очень непонятная задача по программированию, прощу о помощи!
Дано K наборов ненулевых целых чисел. Признаком завершения каждого набора является число 0. Вычислить среднее арифметическое всех элементов во всех наборах.
#include
#include
#include
using namespace std;
int main() {
cout > k;
vector averages;
vector box;
auto value = 0;
for (size_t i = 0; i < k; ++i) {
do {
if (value) box.push_back(value);
cin >> value;
} while (value);
auto avg = accumulate(box.begin(), box.end(), 0.0) / box.size();
if (avg) averages.push_back(avg);
box.clear();
}
cout.setf(ios::fixed);
cout.precision(3);
size_t n = 0;
for (auto average : averages) cout

Дамир Салимбаев
Верно
Мой вариант на Си:
#include
#include
#include
#define BUFFER_SIZE 512
#define SZ(size, ptr) \
((size + 1) * (sizeof *ptr))
static const char *__next_set_ptr;
static size_t next_set(const char *str, int **dest_set)
{
size_t size = 0;
int *ptr = *dest_set;
int tmp;
if (str) {
__next_set_ptr = str;
}
else if (!__next_set_ptr) {
free(ptr);
return 0;
}
else {
free(ptr);
ptr = NULL;
}
while (*__next_set_ptr != '0') {
if (isdigit(*__next_set_ptr)) {
ptr = realloc(ptr, (size + 1) * sizeof *ptr);
ptr[size++] = *__next_set_ptr - '0';
}
else {
return 0;
}
__next_set_ptr++;
}
__next_set_ptr++;
*dest_set = ptr;
return size;
}
int main(void)
{
size_t set_size, size = 0;
char buffer[BUFFER_SIZE];
float *average = NULL;
int *set = NULL;
int i;
fgets(buffer, BUFFER_SIZE, stdin);
set_size = next_set(buffer, &set);
do {
average = realloc(average, SZ(size, average));
average[size] = 0;
for (i = 0; i < set_size; i++) {
average[size] += set[i];
}
average[size++] /= set_size;
} while (set_size = next_set(NULL, &set));
for (i = 0; i < size; i++) {
printf("set %d: %f\n", i + 1, average[i]);
}
free(average);
return 0;
}
// 12123012125012430673212054341012305430
// set 1: 1.800000
// set 2: 2.200000
// set 3: 2.500000
// set 4: 3.500000
// set 5: 3.400000
// set 6: 2.000000
// set 7: 4.000000
Надеюсь, что я правильно понял условие задачи. #include
using namespace std;
//Вывод массив 1 набора
void outPut(int* arr, int length)
{
for (int i = 0; i < length; i++)
{
cout > el;
arr[i][j] = el;
increaseArr(arr[i], length); //Увеличивает массив 1 набора
if (el == 0)
{
arr[i][j + 1] = midMean(arr[i], length - 1); //Дает последнему символу ср. значение всего ряда 1 набора
break;
}
}
//outPut(arr[i], length); //Я выключил, что бы не мешала, но вы можете включить, а если к length добавить + 1, то можно вывести среднее значение массива набора
}
for (int i = 0; i < K; i++)
{
for (int j = 0; arr[i][j - 1] != 0; j++)
{
if (arr[i][j] == 0) //Выводим следующий символ после нуля, то есть среднее значение массива 1 набора
{
cout
Чувак, не хочу расстраивать, но тут всем плевать (я серьезно, люди не отвечают обычно на такие вопросы, сочувствую, удачи) (и я не насмехаюсь)
Nuriddin Aliev
поверь, есть адекватные, которые отвечают...
Похожие вопросы
- Помогите решить задачу по программированию на C++
- Задача по программированию C++
- Задача по программированию. Решить на Python или C++
- Помогите решить задачу по программированию
- Нужна помощь с задачей по программированию С++ С# Или так или так
- Задача по программированию
- Задача по программированию. Массивы.
- Можете помочь решить задачу по программированию.
- Помогите пожалуйста сделать задачу по программированию C++
- Задача по программированию C++