Профил
Loading...
+ Нов въпрос
SpideRrBG avatar SpideRrBG 0 Точки

Interval of Numbers {C# Conditional Statements and Loops - Exercises} Ако може малко помощ.

Здравейте, задачата, за която пиша е 6. Получава ми се само когато е от по-малко към по-голямо. може ли идей и съвети как да го направя от по-голямо към по-малко? 
Код: https://pastebin.com/rSBL9f9R

Тагове:
0
Fundamentals Module 05/06/2017 17:52:22
spzvtbg avatar spzvtbg 582 Точки

ами ако се изисква от условието провери кое е по малкото и почни от него до по голямото или ползваи методите на мат мин и мат махс

0
AlucardDracula avatar AlucardDracula 405 Точки

линк към условията : ЛИНК

условието на задача 6 : Write a program, which takes two numbers as input and prints the interval of numbers between them, starting from the smaller one and ending with the larger one.

т.е ще ни се подадат 2 цифри и ние трябва да принтираме на конзолата числата между най-малко и най-голямото като трябва да започнем принтирането от най-малкото число :

проблема ти е че не намираш най-малкото число за да го използваш в for цикъла като стартова точка

ето и решение:

var a = int.Parse(Console.ReadLine());
var b = int.Parse(Console.ReadLine());
var maxNum = Math.Max(a, b);
var minNum = Math.Min(a, b);
for (int firstDigit = minNum; firstDigit <= maxNum; firstDigit++)
{
   Console.WriteLine(firstDigit);
}

чрез Math.Min намираме най-малкото число от 2 числа.а при Math.Max е обратния случай

това с Math.Min и Math.Max можеше и да се направи с if-else:

var a = int.Parse(Console.ReadLine());
var b = int.Parse(Console.ReadLine());
var maxNum = 0;
var minNum = 0;
if (a >= b)
{
    maxNum = a;
    minNum = b;
}
else
{
    maxNum = b;
    minNum = a;
}
for (int firstDigit = minNum; firstDigit <= maxNum; firstDigit++)
{
    Console.WriteLine(firstDigit);
}

но не изглежда много хубаво + виж колко реда е smiley

1
05/06/2017 21:26:46
gturlakov avatar gturlakov 2 Точки

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

 var min = int.Parse(Console.ReadLine());
            var max = int.Parse(Console.ReadLine());
            if (min < max)
            {
                for (int i = min; i <= max; i++)
                {
                    Console.WriteLine(i);
                }
            }
            else
            {
                for (int i = max; i < min+1; i++)
                {
                    Console.WriteLine(i);
                }

1
05/06/2017 21:42:13
SpideRrBG avatar SpideRrBG 0 Точки

Благодаря! :) 

0
simeon3000 avatar simeon3000 265 Точки

wink Много ги обичате тези проверки:

 

      int a = int.Parse(Console.ReadLine());
      int b = int.Parse(Console.ReadLine());

      for (int i = Math.Min(a, b); i <= Math.Max(a, b); i++)
        {
          Console.WriteLine(i);
        }
1