Loading...
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

string[] userINput = Console.ReadLine().Split();
int a = Convert.ToInt32(userINput[0]);
int b = Convert.ToInt32(userINput[1]);
int c = Convert.ToInt32(userINput[2]);
int d = Convert.ToInt32(userINput[3]);
int e = Convert.ToInt32(userINput[4]);
int sumOfAll = a + b + c + d + e;
Console.WriteLine(sumOfAll);

 

И както колегата по надолу е споменал double  е варианта за променлива, защото има и дробни числа, така че това можеш да си го промениш :) 

4
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Идеята тук е, че като за начало използваме един масив от стрингове, където казваме, че всеки отделен елемент(число), което въведеме ще е член на самия масив. Чрез Split(); функцията казваме ако има резстояние между 2 числа, те са различни сами по себе си. Смисъл такъв разделяме символния низ на подчленове(отделни числа). След което казваме, че "а" = първото число, 'b' = второто число... и така нататък.. :) И накрая ги събираме. Надявам се, че си ме разбрал, ако има нещо питай :) Успех!

9
bgdopus avatar bgdopus 1 Точки

Кода не работи, нито с инт стойности нито с дабъл. Дава ексепшън

-3
aslv1 avatar aslv1 304 Точки

Добре е да се използва
Console.ReadLine().Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);

0
Plami avatar Plami 373 Точки

Console.Write("Enter number one: ");
double numberOne = double.Parse(Console.ReadLine());
Console.Write("Enter number two: ");
double numberTwo = double.Parse(Console.ReadLine());
Console.Write("Enter number three: ");
double numberThree = double.Parse(Console.ReadLine());
Console.Write("Enter number four: ");
double numberFour = double.Parse(Console.ReadLine());
Console.Write("Enter number five: ");
double numberFive = double.Parse(Console.ReadLine());

double sum = numberOne + numberTwo + numberThree + numberFour + numberFive;
Console.WriteLine("{0} {1} {2} {3} {4} {5}", numberOne, numberTwo, numberThree, numberFour, numberFive, sum);

 

Дано ти помогне :) Иначе се порови във форума и ще видиш, че всяко домашно си има тема. Там можеш да видиш примерни решения и много добри разяснения.

Използвам Double, тъй като в отговорите има отрицателни и нецели числа.

Поздрави :)

-5
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Задачата ти ще тработи, но в условието се изисква отделнтие числа да са разделени единствено със space, отъдето се предполага (виж моето решение) :) Успех! Не е нужно да използваш отделни ReadLine, тъй като можеш да зададеш единствено един такъв и в последствие да разделиш отделните числа, ако ли не задата ти няма да отговаря на условието :) Малките неща в едно условие са най - важни :) (съвет)

3
bgdopus avatar bgdopus 1 Точки

Плами пише, че трябва на един ред да се въведат всички цифри...иначе така става 

0
Plami avatar Plami 373 Точки

Мерси за съвета :) Явно ще трябва да почета напред в материала, тъй като съм изпозвала само знания придобити досега. Винаги има възможност на upgrade-ване на знанията :)

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Ами ти в моят случай ги въвеждаш на един ред:

Казвш:

1 2 3 4 5 ( и чак след 5 натискаш enter) 

Като програмата в този случай възприема всяко число за отделно и пълни масива:)

0
bgdopus avatar bgdopus 1 Точки

Да така работи...ама не работи за дабъл....

0
TonislavAtanasov avatar TonislavAtanasov 86 Точки

Ще работи, просто трябва да смениш типа на променливите на double и да парснеш към double, а не към int.

Използвайте Int.Parse (съответно double.Parse, uint.Parse или там каквото ви трябва), когато четете данни от конзолата. 

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

В случая na Plami всяко едно число въвеждаш на отделен ред(което не е отговор на задачата)

Write a program that enters 5 numbers (given in a single line, separated by a space), calculates and prints their sum

Условието изисква числата да са "given in a single line, separated by a space", потърси във форума има една темичка за същата задача там съм обяснил отново по същия начин самата идея:)

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

string[] userINput = Console.ReadLine().Split();
double a = Convert.ToDouble(userINput[0]);
double b = Convert.ToDouble(userINput[1]);
double c = Convert.ToDouble(userINput[2]);
double d = Convert.ToDouble(userINput[3]);
double e = Convert.ToDouble(userINput[4]);

double sumOfAll = a + b + c + d + e;
Console.WriteLine(sumOfAll);

 

Това е варианта за double. Ако ти искарва някакъв error, пробвай вместо точка да използваш запетая или обратното за десетична такава :)

5
bgdopus avatar bgdopus 1 Точки

Пробвах го и с двата вариянта и пак дава грешка...сега ще питам някое гуро с бадж

1
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Няма начин да ти изкарва грешка освен ако ти въвеждаш данните различно от начина, който се изисква :) Попитай и се увери сам :) Това е правилното решение на задачата смятам, че и колегите от форума биха потвърдили (разбира се не отричам другите варианти на решаване на задачата):) Успех :)

1
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Ще ти постна абсолютно целият код. Разгледай си скобите. Увери се дали въвеждаш точка или запетая като десетична. Да не си пропуснал някъде точка и запетая на края на някой ред :)

using System;

class Program
{
static void Main(string[] args)
{
string[] userINput = Console.ReadLine().Split();
double a = Convert.ToDouble(userINput[0]);
double b = Convert.ToDouble(userINput[1]);
double c = Convert.ToDouble(userINput[2]);
double d = Convert.ToDouble(userINput[3]);
double e = Convert.ToDouble(userINput[4]);

double sumOfAll = a + b + c + d + e;
Console.WriteLine(sumOfAll);
}
}

 

0
bgdopus avatar bgdopus 1 Точки

string[] userINput = Console.ReadLine().Split(' ');
double a = double.Parse(userINput[0]);
double b = double.Parse(userINput[1]);
double c = double.Parse(userINput[2]);
double d = double.Parse(userINput[3]);
double e = double.Parse(userINput[4]);

double sumOfAll = a + b + c + d + e;
Console.WriteLine(sumOfAll);

 

Това е финалното....Просто тук се задължаваш масива да ти е от 5 символа и ако въвдеш не работи..затова не ми е и работело...също так смени convert с parse

3
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Ще ти го обясня по друг начин. Масива в началото просто го създаваме със 

string[] userINput = Console.ReadLine().Split();

Тук никъде не казваме колко голям да е той ( не го ограничаваме) , след което може би където идва заблудата у теб е:

double a = Convert.ToDouble(userINput[0]);
double b = Convert.ToDouble(userINput[1]);
double c = Convert.ToDouble(userINput[2]);
double d = Convert.ToDouble(userINput[3]);
double e = Convert.ToDouble(userINput[4]);

Тук казваме нека има променливи: a,b,c,d,e ,  който да пазят стойностите на първите 5 члена от нашия масив, а иначе казано ти ако въведеш 200 члена, програмата ще ти сметне само сумата на нашите 5 променливи(а именно числата които ни трябват), които сме задали:

double sumOfAll = a + b + c + d + e;

Тук пресмятаме общатата им сума и накрая ги принтираме на конзолата :)

Не е нужно да сменяме Convert s Parse, няма причина в случая за това действие :)

Програмата ще ти работи винаги, колкото и числа(образно казано) му въведеш но ще ти пресмята само 5 от тях(първите)

Ако искаш да му зададеш някакво ограничение направи един IF else statement , в който да казваш ако масивът ми от стригнове е по - голям от 5 числа, въведете отново 5 числа :)

Късмет:) 

-1
Nukem avatar Nukem 6 Точки

Ако оставиш два space-a вместо един между числата, забива!

0
aslv1 avatar aslv1 304 Точки

Ето как да не хвърля изключение:
Console.ReadLine().Split(new char[] { ' ', '\t' }, <strong>StringSplitOptions.<span style="text-decoration: underline;">RemoveEmptyEntries</span></strong>);

-1
TodorovH avatar TodorovH 216 Точки

Колега тоя червен ред върви надясно и излиза чак от монитора ми! хахахах сигурно е някакъв бъг!

0
Vegeta avatar Vegeta 16 Точки

Ето едо малко по-различно решение:

 

using System;
using System.Linq;

//Write a program that enters 5 numbers (given in a single line, separated by a space), calculates and prints their sum.

class SumOfFiveNumbers
{
static void Main()
{
Console.Write("Please, write 5 numbers separated by a space: ");
var numbers = Console.ReadLine().Split().Take(5);
Double[] digits = numbers.Select(d => Convert.ToDouble(d)).ToArray();
double sum = digits.Sum();

Console.WriteLine("The sum is: " + sum);
}
}

9
presian avatar presian 223 Точки

Много силно решение. Благодаря, че го сподели. Циклих доста на тази задача преди да го видя!

0
nikolaykk avatar nikolaykk 94 Точки

Здравей,

Така както си направил програмата въвеждаш повече от 5 числа, но сумираш само първите 5.

За да е коректно решението или трябва да сумираш всички въведени числа или да ограничиш броя на въведените числа до 5.

0
04/06/2015 11:18:47
Ivan_Mollov avatar Ivan_Mollov 3 Точки

 

 

 

Здравейте!

Решението, което измислих е това:

 

using System;

class SumOf5Numbers
{
static void Main()
{
char ch;
int i = 0;
string a = " ";
decimal sum = 0m;
do
{
i = Console.Read();
ch = (char)i;
if (i == 32 || i == 13)
{
sum = sum + decimal.Parse(a);
a = " ";
}
else
{
a = a + ch;
}
}
while (i != 13);
Console.WriteLine(sum);
}
}

Идеята ми е да отчитам кога от клавиатурата е въведен Space и кога Enter останалите знаци са цифри (би трябвало ;дд) и се обръщат в decimal и се събират.

Дано съм помогнал. 

Късмет! :)

3
Atanasov_88 avatar Atanasov_88 39 Точки

Ето и моето решение: Мисля, че ако си начинаещ би трябвало това да е най-лесното.

 

using System;

    class SumOfFiveNumbers
    {
        static void Main()
        {
            Console.WriteLine("Enter five numbers:");
            double a = double.Parse(Console.ReadLine());
            double b = double.Parse(Console.ReadLine());
            double c = double.Parse(Console.ReadLine());
            int d = int.Parse(Console.ReadLine());
            int e = int.Parse(Console.ReadLine());
            double sum = a + b + c + d + e;
            Console.WriteLine("The sum of {0} {1} {2} {3} {4} | {5}", a,b,c,d,e,sum);

        }
    }

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