Единственное, что вы передаете функции printf (), - это указатель на первый символ вашей строки. printf () не имеет возможности узнать размер вашего массива. (Он даже не знает, является ли это фактическим массивом, поскольку указатель - это просто адрес памяти.)
printf (), и все стандартные функции строки c предполагают, что в конце ваша строка. printf (), например, будет печатать символы в памяти, начиная с символа, который вы передаете функции, до тех пор, пока он не достигнет 0.
Поэтому вы должны изменить свой код на что-то вроде этого:
char Buffer[9]; //holds the byte stream
int i=0;
if( //user input event has occured )
{
Buffer[i] = charInput;
i++;
Buffer[i] = 0; // You can also assign the char '\0' to it to get the same result.
// Display a response to input
printf("Buffer is %s!\n", Buffer);
}
Вы можете вычислить средние значения для каждого ключа карты, используя:
Map<String, Double> result = Stream.of(m1, m2, m3)
.flatMap(m -> m.getMap1().entrySet().stream()
.filter(e -> e.getValue() != null))
.collect(Collectors.groupingBy(e -> e.getKey(),
Collectors.averagingDouble(e -> e.getValue())));
И вывод для ваших тестовых данных будет {score=60.0, rating=14.0, age=23.333333333333332}