Очень непонятная задача по программированию, прощу о помощи! - Компьютерные вопросы

Вопрос Очень непонятная задача по программированию, прощу о помощи!

Регистрация
24 Ноя 2013
Сообщения
78
Репутация
-1
Спасибо
0
Монет
0
Дано K наборов ненулевых целых чисел. Признаком завершения каждого набора является число 0. Вычислить среднее арифметическое всех элементов во всех наборах.
 

555

Capitan

555

Capitan
Регистрация
25 Авг 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Мой вариант на Си: #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;
}

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 Надеюсь, что я правильно понял условие задачи.
 
Регистрация
3 Ноя 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
190714787_ae13b06908f2062aef18c031dcb81b1a_800.png

Если нолик получаешь, добавляешь в конечный массив ср арифметическое и обнуляешь счетчики и продолжаешь. Задание согласен непонятное, если у тебя начало обучения 1 курс универа например, то нужно просто ср всех чисел исключая нули, если нет то как я написал - ср арф каждого набора.
 
Регистрация
6 Сен 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
Чувак, не хочу расстраивать, но тут всем плевать (я серьезно, люди не отвечают обычно на такие вопросы, сочувствую, удачи) (и я не насмехаюсь)
 
Регистрация
14 Дек 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
#include
using namespace std;

//Вывод массив 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
 
Сверху Снизу