Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы - C#
Формулировка задачи:
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента когда часовая и минутная стелка совпадут. Т е когда угол часовой стрелки и минутной будут равны. Вот отрывок задачи но я не могу полностью разобраться как именно нужно нааписать код.
Почему минуту увеличивает только один раз?
private void button1_Click(object sender, EventArgs e) { int gmin,gchas; // время от куда мы стартуем int chas = Convert.ToInt32(textBox1.Text); //Часы которые вводим int min = Convert.ToInt32(textBox2.Text); // минуты gchas = chas * 30; // определяем угол для часовой стрелки gmin = min * 6; // определяем угол для минутной стрелки // выбрал цикл с постусловием do { if (min == 60) min = 1; // проверка на то если минуты дошли до 60 то ставим в начало т е с 1 минты min++; gmin = gmin++; // при каждом увеличении минуты увеличииваем угол на 6 градусов gchas =gchas +6; //увеличение на 1 градус часовой стрелки } while (gmin == gchas); // если углы равны то label3.Text = Convert.ToString(min);// выводим сколько минут прошло до того как совпали часовая стрелка и минутная .
Решение задачи: «Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы»
textual
Листинг программы
static void Main(string[] args) { int i=0,k=0,proxodpo0=0,vremyadlyadagona=0; int vremyM, vremy4,na4polMstrelki; Console.WriteLine("сейчас часов: "); vremy4=Convert.ToInt32(Console.ReadLine()); Console.WriteLine("сейчас минут: "); vremyM = Convert.ToInt32(Console.ReadLine()); na4polMstrelki = vremyM; Console.WriteLine("Сейчас " + vremy4 + " часов " + vremyM + " минут"); if (vremy4 >= 12) vremy4 = vremy4 - 12; double drob = (vremyM / 12); int brob1 = Convert.ToInt32(Math.Floor(drob)) * 6; int ugolM, ugol4; ugolM = vremyM*6; ugol4 = (vremy4 * 30) + brob1; Console.WriteLine("Часовая стрелка сейчас имеет угол " + ugol4); Console.WriteLine("Минутная стрелка сейчас имеет угол " + ugolM); while (ugolM != ugol4) { vremyM=vremyM+1; if (vremyM >= 60) { vremyM = 0; vremy4++; proxodpo0++; } i ++; ugolM = vremyM * 6; } vremyadlyadagona = i; i = i + proxodpo0; i = i + (na4polMstrelki % 12); double drob4 = i / 12; int y = Convert.ToInt32(Math.Floor(drob4)); ugol4 = ugol4 +(y*6); while (ugolM != ugol4) { vremyM = vremyM + 1; k++; ugolM = vremyM * 6; } int sovpad = vremyadlyadagona + k + proxodpo0; Console.WriteLine("Совпадение стрелок будет через " + sovpad + " минуты"); Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д