Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

remote87 avatar remote87 121 Точки

Здрасти!

Така няма ли да е по-лесно:

Console.Write("Enter five numbers separated by space: ");
            string[] numbers = Console.ReadLine().Split();
            double sum = 0;
            for (int i = 0; i < numbers.Length; i++)
            {
                sum += Convert.ToDouble(numbers[i]);
                
            }
            Console.WriteLine(sum);

Тествах го с няколко различни числа и мисля, че работи коректно. Просто ми се струва, че много го усложняваш :)

2
RoYaL avatar RoYaL Trainer 6849 Точки

Начини много :) Console.ReadLine().Split().Select(double.Parse).Sum()

7
remote87 avatar remote87 121 Точки

Е, да това определено е по-добро решение от моето...даже май е най-доброто понеже решаваш задачата с един ред :D

Благодаря, RoYaL!

0
simeon_petrov avatar simeon_petrov 45 Точки

И двата варианта са добри, да! Благодаря за отговорите!

Май това е което е най-добро, като краен вариант:

Console.WriteLine(Console.ReadLine().Split().Select(double.Parse).Sum());

Предимството на моя дълъг вариант е, че може да се замести сепаратора с някакъв стринг и кода търпи повече модификации и усложняване. Тук може ли да се замести сепаратора, да не е шпация?

0
06/09/2015 15:46:05
Filkolev avatar Filkolev 4482 Точки

Това, че едно решение е на един ред, не значи, че е добро. Не е хубаво да се извършват твърде много операции на един ред; в случая по-добре да се разбие на два реда, като принтирането да е отделно. Кодът е по-труден за четене, не за друго. 

3
simeon_petrov avatar simeon_petrov 45 Точки

Тук може ли да се замести сепаратора, да не е шпация?

 

Сам си отговарям на въпроса :) Да, може. Ето така, в случая разделителят е 'u':

Console.WriteLine(Console.ReadLine().Split('u').Select(double.Parse).Sum());

1
08/09/2015 11:21:37
stefkay avatar stefkay 54 Точки

Здравей, 

Може да изредиш и няколко различни разделителя, както и да се подсигуриш ако имаш няколко празни места между числата. Подаваш на Split() масив от символи (в случая: , -  & и space), които примерно биха могли да ти бъдат разделители, а StringSplitOptions е описателно и се досещаш какво прави:

double[] numbers = Console.ReadLine().Split(new char[] { ',', '-', '&', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(double.Parse).ToArray();
0
osmi86 avatar osmi86 1 Точки

 static void Main()
    {
        string[] numbers = Console.ReadLine().Split(' ');
        double a = double.Parse(numbers[0]);
        double b = double.Parse(numbers[1]);
        double c = double.Parse(numbers[2]);
        double d = double.Parse(numbers[3]);
        double e = double.Parse(numbers[4]);
        Console.WriteLine(a + b + c + d + e);
        
    }

Това е моето решение.

0
osmi86 avatar osmi86 1 Точки

 static void Main()
    {
        string[] numbers = Console.ReadLine().Split(' ');
        double a = double.Parse(numbers[0]);
        double b = double.Parse(numbers[1]);
        double c = double.Parse(numbers[2]);
        double d = double.Parse(numbers[3]);
        double e = double.Parse(numbers[4]);
        Console.WriteLine(a + b + c + d + e);
        
    }

Това е моето решение.

0
osmi86 avatar osmi86 1 Точки

 static void Main()
    {
        string[] numbers = Console.ReadLine().Split(' ');
        double a = double.Parse(numbers[0]);
        double b = double.Parse(numbers[1]);
        double c = double.Parse(numbers[2]);
        double d = double.Parse(numbers[3]);
        double e = double.Parse(numbers[4]);
        Console.WriteLine(a + b + c + d + e);
        
    }

Това е моето решение.

0
mgerin avatar mgerin 4 Точки

А някой пробвал ли е с класа Nakov.IO.Cin? Докато търсех варианти за изписване на числа на един ред, попаднах на него, но нещо не успявам да го подкарам.

using System;
using Nakov.IO;

class SumOf5Numbers
{
    static void Main()
    {
        double firstNumber = Cin.NextDouble();
        double secondNumber = Cin.NextDouble();
        double thirdNumber = Cin.NextDouble();
        double fourthNumber = Cin.NextDouble();
        double fifthNumber = Cin.NextDouble();

        double sum = (firstNumber + secondNumber + thirdNumber + fourthNumber + fifthNumber);
        Console.WriteLine(sum);
    }
}

 

Като се опитам да компилирам, дава грешка:

Error    1    The type or namespace name 'Nakov' could not be found (are you missing a using directive or an assembly reference?)    C:\Users\Marin\Documents\Visual Studio 2013\Projects\Homework-Console-Input-Output\07SumOf5Numbers\SumOf5Numbers.cs    2    7    07SumOf5Numbers


Свалих си този файл (http://www.nakov.com/wp-content/uploads/2011/11/Cin.cs), но не знам къде да го поставя, за да сработи.

0
RoYaL avatar RoYaL Trainer 6849 Точки

В проекта? Иначе вариант ти е да добавиш референция от References

0
mgerin avatar mgerin 4 Точки

Благодаря, успях да го добавя с Add class с дясна мишка на проекта и сработи.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.