#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int *arr;
int x, y, i, j, sum = 0, min = 0, minstr = 0;
srand(time(NULL));
x = 2 + rand() % 10;
y = 2 + rand() % 6;
arr = (int*)malloc(x*y*sizeof(int));
printf("Array %d x %d: \n", x, y);
for (i = 0; i < x; i++){
for (j = 0; j < y; j++){
*(arr + i*y + j) = -50 + rand() % 100;
printf("arr[%d][%d] = %3d; ", i, j, *(arr + i*y + j));
}
printf("\n");
}
for (i = 0; i < y; i++)
min += *(arr + i);
minstr = 0;
for (i = 1; i < x; i++){
for (j = 0; j < y; j++)
sum += *(arr + i*y + j);
if (sum < min) {
min = sum;
minstr = i+1;
}
sum = 0;
}
printf("Minimum amount: %d (%d line)", min, minstr);
free(arr);
return 0;
Объяснение:
это пример как делать
ответ: у меня два варианта
1Если 8 разделить на 2 получится 4.Значит нужно набрать половину сосуда, объём которого 8 л.
2Сначала налить воду в сосуд вместимостью 8 л, затем перелить из этого сосуда воду в сосуд вместимостью 5 литров. Получится, что в том сосуде, где было 8 литров останется 3 литра, т.к. 5 литров вы вылили в другой сосуд. Из сосуда вместимостью 5 литров вылить воду и перелить из второго сосуда 3 литра. Дальше набираем сосуд вместимостью 8 л водой и отливаем воду в сосуд вместимостью 5л(у нас там 3 литра воды), значит в сосуде вместимостью 8 литров воды останется 6 литров воды(т.к. 2 литра мы перельем в сосуд вместимостью 5л). Выливаем воду из сосуда вместимостью 5 литров и переливаем в него воду из сосуда вместимостью 8л и получится, что в первом сосуде(где 8л) останется 1 литр воды. Выльем воду из сосуда вместимостью 5л и нальем туда этот 1 литр воды. Далее набираем сосуд вместимостью 8 литров водой и переливаем воду в сосуд вместимостью 5 литров. Т.к. там у нас один литр, то получится, что из первого сосуда мы отольем 4 литра воды(т.к. сосуд расчитан на 5 литров воды) и значит в нем останется 4 литра воды. Вот и все.
Объяснение: