@LorDDrouS
Учусь создавать android приложения

Найти сумму элементов расположенных между 1 и 2 отрицательными элементами?

Здравствуйте! Данную задачу я решил с помощью for, но нужно еще сделать с while, попытался, но что-то не сходится, не могу понять в чем ошибка, кто сможет помочь?
1)код с for:
817097f7f4bc4ec3b97c99537eed243a.pngb8d8bd50b3fd46d7a27c16e84b14df10.png
2)код с while:
4a101ee06db34855bf3ffd17960c4227.png
  • Вопрос задан
  • 1156 просмотров
Решения вопроса 1
tomnolane
@tomnolane
профессиональный разработчик
глаза разбегаются и появляются много слов, начинающих с "почему?" и "зачем это..."
я опущу комментарии некоторые и просто дам вам очень простой способ, как через while
Найти сумму элементов расположенных между 1 и 2 отрицательными элементами

//допустим, в ниже переменных вы тем или иным способом уже получили какие-то данные
 double[] val1 = {-13.2, -14.8, 23, 0, -2.1, -6};
            double[] val2 = { -18.8, -11.2, 13, 0, -4.5, -2 };
            double sum = 0;
            int temp = 0;
            int temp2 = 1;

            //между массивами c одинаковым индексом
            while (sum == 0)
            {
                if (val1[temp] < 0 && val2[temp] < 0)
                {
                    sum = val1[temp] + val2[temp];
                }
                temp++;
            }
            Console.WriteLine("Сумма: " + sum);

            sum = 0; temp = 0;
            //между массивами c разным индексом
            while (sum == 0)
            {
                if (val1[temp] < 0)
                {
                    sum += val1[temp];
                    bool yeap = false;
                    while (yeap == false)
                    {
                        if (val2[temp2] < 0) { sum += val2[temp2]; break; }
                        temp2++; 
                    }
                    break;
                   
                }
                temp++;
            }
            Console.WriteLine("Сумма: " + sum);


            //1) если даны два массива с перемешанными данными и нужно найти
            //у каждого массива свои отрицательные числа и сложить (1 и 2-ой)
            sum = 0; temp = 0; temp2 = 0;
            double[] val3 = { -13.2, -14.8, -23, 0, -2.1, -6 };
            double[] val4 = { 2, -11.2, 13, 10, -4.5, 5 }; 
            
            //для 1 массива
            while (temp2 < 2)
            {
                if (val3[temp] < 0)
                {
                    sum += val3[temp];
                   temp2++;
                }
                temp++; 
            }
            Console.WriteLine("Сумма первых двух отрицательных чисел у массива val3: " + sum);

            sum = 0; temp = 0; temp2 = 0;
            //для 2 массива (аналогично)
            while (temp2 < 2)
            {
                if (val4[temp] < 0)
                {
                    sum += val4[temp];
                    temp2++;
                }
                temp++;
            }
            Console.WriteLine("Сумма первых двух отрицательных чисел у массива val4: " + sum);

            //2) если даны два массива с перемешанными данными и нужно найти
            //1 отрицательное число у первого массива со вторым отрицательным числом у второго массива
            sum = 0; temp = 0; temp2 = 0;
            int temp3 = 0;
            while (temp2 < 1 || temp3 < 2)
            {
                if (val3[temp] < 0 && temp2 == 0)
                {
                    sum += val3[temp];
                    temp2++;
                }

                if (val4[temp] < 0 && temp3 < 2)
                {
                    if(temp3 == 1) { sum += val4[temp]; }
                    temp3++;
                }

                temp++;
            }
            Console.WriteLine("Сумма первых двух отрицательных чисел у массивов val3(1 отрицательное) и у val4(2 отрицательное): " + sum);


п.с. рекомендую поощрять людей, которые вам помогают (судя по вашему "портфолио" - вы не особо используете кнопки "отметить решением" и "нравится", а ведь даже кошке доброе слово приятно)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы