@gleb_oj

Программа почему-то только перечисляет числа, хотя должна находить сумму чисел, которые делятся на указанное число, как исправить?

using System;

namespace ConsoleApp19
{
    class Program
    {
        public static char d;

        public static void Main(string[] args)
        {
            Console.WriteLine("Введите начальное число");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите конечное число");
            int b = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите кратное число");
            int c = Convert.ToInt32(Console.ReadLine());
            int sum = 0;
            int s = a;
            while (s < b)
            {
                int k = s % c;
                switch (d)

                {
                    case '%':
                        k = 0;
                        break;
                }
                sum = sum + k;

                Console.WriteLine(sum);
                s++;
            }
        }   
    }
}
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
код
using System;

namespace sum_of_dividends
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Введите начальное число");
            var a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите конечное число");
            var b = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите кратное число");
            var c = Convert.ToInt32(Console.ReadLine());

            var sum = 0;
            for (var x = a; x <= b; x++)
                if ((x % c) == 0)
                    sum += x;

            Console.WriteLine(sum);
        }
    }
}
выхлоп
eY84w6Q.png
ps чуток перегнул. теперь упростил.. и еще..
ps по заказу switch
using System;

namespace sum_of_dividends
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Введите начальное число");
            var a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите конечное число");
            var b = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите кратное число");
            var c = Convert.ToInt32(Console.ReadLine());

            var sum = 0;
            for (var x = a; x <= b; x++)
                switch (x % c)
                {
                    case 0: sum += x; break;
                    default: break;
                }

            Console.WriteLine(sum);
        }
    }
}
выхлоп
blK6WLW.png
ps тогда уже для полноты картины и while
using System;

namespace sum_of_dividends
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Введите начальное число");
            var a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите конечное число");
            var b = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите кратное число");
            var c = Convert.ToInt32(Console.ReadLine());

            var sum = 0;
            var x = a;
            while (x <= b)
            {
                switch (x % c)
                {
                    case 0: sum += x; break;
                    default: break;
                }
                x++;
            }

            Console.WriteLine(sum);
        }
    }
}
выхлоп
8OSpPXo.png
тоже подправлено. так понадежнее
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Для начала, может перенисете
Console.WriteLine(sum);
под
while(s<b){}
Ответ написан
Комментировать
@AisenC
int sum = 0; в цикл лучше перенести

Console.WriteLine(sum); перенести из видимости цикла в метод
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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