Дано K наборов ненулевых целых чисел. Признаком завершения каждого набора является число 0. Вычислить среднее арифметическое всех элементов во всех наборах.
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;
}
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);
}
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 Надеюсь, что я правильно понял условие задачи.
Если нолик получаешь, добавляешь в конечный массив ср арифметическое и обнуляешь счетчики и продолжаешь. Задание согласен непонятное, если у тебя начало обучения 1 курс универа например, то нужно просто ср всех чисел исключая нули, если нет то как я написал - ср арф каждого набора.
//Вывод массив 1 набора
void outPut(int* arr, int length)
{
for (int i = 0; i < length; i++)
{
cout > el;
arr[j] = el;
increaseArr(arr, length); //Увеличивает массив 1 набора
if (el == 0)
{
arr[j + 1] = midMean(arr, length - 1); //Дает последнему символу ср. значение всего ряда 1 набора
break;
}
}
//outPut(arr, length); //Я выключил, что бы не мешала, но вы можете включить, а если к length добавить + 1, то можно вывести среднее значение массива набора
}
for (int i = 0; i < K; i++)
{
for (int j = 0; arr[j - 1] != 0; j++)
{
if (arr[j] == 0) //Выводим следующий символ после нуля, то есть среднее значение массива 1 набора
{
cout