Wczytanie nieokreślonej liczby danych.

0

Cześć, mam problem z zadaniem ze SPOJ.
Na wejściu programu będzie nieokreślona bliżej liczba liczb.
Mój program musi je wszystkie dodać.
Nie wiem jaki warunek dać w pętle while, aby program rozpoznał że liczby się skończyły i należałoby skończyć również działanie programu.
Są bardzo łatwe rozwiązania tego problemu w c++ jednak na poszukiwanie czegoś w c# straciłem już pare godzin :C

0

Na wejściu w sensie gdzie? W argumentach w linii poleceń czy na wejściu konsoli?

0

Na wejściu konsoli.

0

Może to (nieokreślona liczba testów) będzie przydatne http://213.192.104.217/phpBB3-spoj-pl-backup/viewtopic.php?f=10&t=1208

1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace App
{
    class Program
    {
        static void Main(string[] args)
        {
            string data = null;
            while (!string.IsNullOrWhiteSpace(data = Console.ReadLine()))
            {
                int number = 0;
                int.TryParse(data, out number);
                /* i tutaj przetwarzasz int'a */
            }
        }
    }
}
0

Dziękuję bardzo.
Skorzystałem z :

while (((x = Console.ReadLine())) != null)
{
}
0

@sig, @reptile333 linki, które daliście to najgorsze możliwe rozwiązania: używacie Parse zamiast TryParse co spowoduje wyrzucenie wyjątku przy niemożności konwersji. O sprawdzaniu stringa gołym warunkiem zamiast dedykowaną metodą IsNullOrWhiteSpace nawet nie wspominam.

0
grzesiek51114 napisał(a):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace App
{
    class Program
    {
        static void Main(string[] args)
        {
            string data = null;
            while (!string.IsNullOrWhiteSpace(data = Console.ReadLine()))
            {
                int number = 0;
                int.TryParse(data, out number);
                /* i tutaj przetwarzasz int'a */
            }
        }
    }
}

W sumie ten kod działa lepiej, nie ma żadnych błędów podczas wpisywania danych z klawiatury ręcznie.
Dziwne że sędzia przyjmuje kod który w przypadku wpisywania danych ręcznie daje błąd :v

1 użytkowników online, w tym zalogowanych: 0, gości: 1