Red de conocimiento informático - Conocimiento sistemático - Buscando el código y análisis de esta pregunta c

Buscando el código y análisis de esta pregunta c

#include?lt;iostreamgt;

int?main()

{

const?size_t?volume(20); ?//Capacidad máxima de la taza de agua;

size_t?cup[4][2]?=?{0};?//¿Taza unidimensional[1] a ?cup[3]? representa tres tazas de agua,? Dos números bidimensionales representan el volumen de agua actual y la capacidad restante;

size_t?count(0);?//Número de agua vertida;

std ::cin?gt; gt;?copa[1][0]?gt;gt;?copa[2][0]?gt;gt;?copa[3][0]?gt;gt;?cuenta; ?//Ingrese el estado inicial de la taza de agua y el número de vertidos;

//Calcule la capacidad restante de tres tazas de agua;

cup[1][1]?= ?volumen?-?taza[1][0 ];

taza[2][1]?=?volumen?-?taza[2][0];

taza [3][1]?=?volume? -?cup[3][0];

size_t?t1(0);?//Número de vertido;

size_t? t2(0);?//Se vierte agua número;

while(count--?=?0)

{

std::cin? gt;gt;?t1?gt; gt;?t2;?//t1 verter en t2;

if(cup[t1][0]?==?0?||?cup[t2] ][0]?==?volume )?//Si la taza t1 no tiene agua o la taza t2 está llena, omita

continuar

if(cup[t2] [1]?gt;=? cup[t1][0])?//Si la capacidad restante de t2 es mayor o igual a la cantidad de agua en t1;

{

taza[t2][0]? =?taza[ t1][0];?//t2 el volumen de agua aumenta;

taza[t2][1]?-=?taza[t1 ][0];?//t2 la capacidad restante disminuye;

taza[t1][0]?=?0;?//t1 se ha derramado;

taza[ t1][1]?=?volume;?//La capacidad restante de t1 es Máxima;

}

else?//Si la capacidad restante de t2 es menor que la cantidad de agua en t1;

{

cup[t1 ][0]?-=?cup[t2][1];?//t1 solo vierte la capacidad restante de t2;

taza[t1][1]? =?taza[t2] [1];?//t1 aumenta la capacidad correspondiente;

taza[t2][0 ]?=?volumen;?//t2 está lleno;

taza[t2 ][1]?=?0;?//t2 no tiene capacidad restante;

}

}

std::cout?lt;lt; ?cup[1][0]?lt;lt;?'?'?lt;lt;?cup[2] [0]?lt;lt;?'?'?lt;lt;?cup[3][ 0]?lt;lt;?std::endl;?//Salga el volumen de agua final de 3 tazas de agua;

retorno?0;

}