System.ArgumentOutOfRangeException - przy ostatnim elemencie listy

2018-11-15 22:40
0

To mój pierwszy post tutaj:
Mam problem z listą, a mianowicie z tego co zrozumiałem, to ostatni element jest uznawany jako znajdujący się poza nią. Dopiero zaczynam naukę programowania w c# i to jest moja pierwsza styczność z listami

using System;
using System.Collections.Generic;

namespace Converter
{
    class Program
    {
        public static void Main(string[] args)
        {

            string input = Console.ReadLine();
            int num;
            while (int.TryParse(input, out num) == false) //Sprawdzanie czy input moze byc liczba calkowita. Jesli tak to konwertuje
                                                          //sie do num. W przeciwnym wypadku prosi o
                                                          //ponowne podanie liczby.
            {
                input = Console.ReadLine();
            }
            List<int> binary = new List<int>(); //Tutaj zapisuje sie liczba w systemie binarnym jako lista (ale od tylu).
            for (int i = 0; num > 1; i++)
            {
                binary.Add(num % 2);
                num = num / 2;
            }
            for (int i = binary.Count; i > 0; i--) //Wypisuje liste binary od tylu (aby dane wyjsciowe byly poprawne
                                                   //np. aby 10 -> 1010, a nie -> 0101)
            {
                Console.Write(binary[i]); //Problem jest taki, ze lista binary uznaje ostatni element (binary.Count) jako
                                          //element spoza listy `\_(i-i)_/`
            }
            Console.ReadKey();
        }
    }
}

screenshot-20181115222924.png

edytowany 2x, ostatnio: furious programming, 2018-11-15 22:42

Pozostało 580 znaków

2018-11-16 03:14

zmodyfikuj te pętle:

            for (int i = 0; num >= 1; i++)
            {
                binary.Add(num % 2);
                num = num / 2;
            }
            for (int i = binary.Count-1; i >= 0; i--) 
            {
                Console.Write(binary[i]);
            }
edytowany 2x, ostatnio: kzkzg, 2018-11-16 03:15
Wielkie dzięki! - blasko254 2018-11-16 14:32

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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