Даны целые числа 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();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы