Do potęgi -1

0

Witam

pisze po raz drugi na tym forum ponieważ nie działa mi pewien program który w treści brzmi tak:

"Należy stworzyć program, który przypisze 20 elemetnów ciągu o wzorze n=(n-1)^-1 a następnie zapyta użytkownika który element ciągu należy wyświetlic na ekranie"

udało mi się napisać coś takiego jak poniżej lecz pojawia się komunikat o tym że nie można niejawnie skonwertować typu double na int. Czy może mi ktoś wytłumaczyć jak określić typy tych danych.

static void Main(string[] args)
        {
            double[] tablica = new double[20];
            string wybor;
            double wyswietl;
            
            for (double i = 0; i < 20; i++)
            {
                tablica[i] = 1 / (i-1);   
            }        
            Console.WriteLine("Jaki element z zakresu 1:20 wyswietlić: ");
            wybor = Console.ReadLine();
            wyswietl = int.Parse(wybor);
            Console.WriteLine(tablica[wyswietl - 1]);
            Console.ReadKey(); 
        } 
1

Nie można indeksować tablic typami zmiennoprzecinkowymi.

for(int i = 0; i < 20; i++)
{
    tablica[i] = 1.0 / (i-1);
}
0

czyli gdzie należy określić aby liczba była zmiennoprzecinkowa ??

0

Stwórz sobie drugą liczbę, a do indeksowania tablic użyj inta

0

a może tak fragmęcik kodu dla ułatwienia. Wiem że dla Was jest to jasne ale ja dopiero zaczynam ;)

0
chriss83 napisał(a):

Witam

pisze po raz drugi na tym forum ponieważ nie działa mi pewien program który w treści brzmi tak:

"Należy stworzyć program, który przypisze 20 elemetnów ciągu o wzorze n=(n-1)^-1 a następnie zapyta użytkownika który element ciągu należy wyświetlic na ekranie"

udało mi się napisać coś takiego jak poniżej lecz pojawia się komunikat o tym że nie można niejawnie skonwertować typu double na int. Czy może mi ktoś wytłumaczyć jak określić typy tych danych.

static void Main(string[] args)
        {
            double[] tablica = new double[20];
            string wybor;
            double wyswietl;
            
            for (int i = 0; i < 20; i++)
            {
                tablica[i] = 1 / (i-1);   
            }        
            Console.WriteLine("Jaki element z zakresu 1:20 wyswietlić: ");
            wybor = Console.ReadLine();
            wyswietl = int.Parse(wybor);
            Console.WriteLine(tablica[wyswietl - 1]);
            Console.ReadKey(); 
        } 
0

tylko w takiej fomie też wychodzi bląd " że nie można niejawnie skonwertować typu double na int"

1

Aby uzyskać iloraz dwóch liczb jako double, składowe muszą być również doublami. Można rzutować, a można zrobić np. tak

double d = 0;
for (int i = 0; i < 20; i++)
            {
                tablica[i] = (1 / (d-1));
                d++;   
            }
0

Dzięki za odpowiedź pomogło

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