include does not name a type

0

Cześć, mam banalny problem, ale nie dla mnie. Przy include <iostream> wyrzuca mi include does not name a type. Jakieś sugestie co jest nie tak? Dzięki,

include<iostream> int main()
{
    int year;
    double d1[year];
    double c1[year];
    d1[0] = 100;
    c1[0] = 100;
    int y = 1;
    while (d1[y] > c1[y])
    {
        d1[y] = d1[y - 1] + 10, c1[y] = c1[y - 1] * 1.05;
        y++;
        std::cout << "Obroty Dafne:\t" << d1[y] << "Obroty Cleo:\t" << c1[y] << std::endl;
    }
    return 0;
}
4

Brakuje #

Swoją drogą, masz UB w tym kodzie. Porównujesz nizainicjalizowane wartości tablic d1 i c1

4

brak # i znaku końca linii

0

@kq Czy pętla do while jest rozwiązaniem problemu?

2

Nie, po prostu sprawdzaj tylko wartości zainicjalizowanych elementów.

Możliwe, że chciałeś coś takiego:

    int y = 0;
    while (d1[y] > c1[y])
    {
        d1[y+1] = d1[y] + 10;
        c1[y+1] = c1[y] * 1.05;
        y++;
        std::cout << "Obroty Dafne:\t" << d1[y] << "Obroty Cleo:\t" << c1[y] << std::endl;
    }

Swoją drogą ten przecinek między przypisaniami kompletnie bez sensu.

3

Zadanie z któregoś Praty, coś kojarzę.

int year;
double d1[year];
double c1[year]; 

To też zdaje się nie jest zgodne ze standardem C++.
Niedynamiczne tablice powinny mieć rozmiar const.

0

Tak, to z Praty. 5 rozdział po porawkach kod wygląda tak i działa

#include <iostream>
int main()
{
    int year;
    double d1[year];
    double c1[year];
    d1[0] = 100;
    c1[0] = 100;
    year = 1;
      int y = 0;
      do
        {
        d1[y+1] = d1[y] + 10;
        c1[y+1] = c1[y] * 1.05;
        std::cout << "Obroty Dafne:\t" << d1[y] << "Obroty Cleo:\t" << c1[y] << std::endl;
        y++;
        }
    while (d1[y] > c1[y]);
std::cout << "Obroty Dafne:\t" << d1[y] << "Obroty Cleo:\t" << c1[y] << std::endl;
std::cout << "Liczba lat potrzebnych do określonego celu:\t" << y << std::endl;

return 0;
}
5

Ten kod nie może działać.

    int year;
    double d1[year];
    double c1[year];

Odpowiedz na pytanie: jaką wartość ma zmienna year? Kiedy już to określisz będziesz wiedział, jaki rozmiar maja te tablice...

Problem polega na tym, że na to pytanie nie można odpowiedzieć. Zmienna year nie ma określonej wartości. Następnie próbujesz jej użyć do określenia rozmiaru tablicy. To się nie trzyma kupy.

Dodatkowo rozmiar tablicy musi być wyrażeniem stałym (constant expression) a year takim wyrażeniem nie jest. Taki kod nie powinien się nawet kompilować, ale niektóre kompilatory (np. GCC) obsługują tablice o zmiennym rozmiarze (VLA - variable length array) w C++. (VLA pochodzą z języka C i nie ma ich w C++). Żeby to naprawić wystarczy dodać const do zmiennej year. Ale wtedy obowiązkowo trzeba jej nadać wartość.

Wydaje mi się, że w tym zadaniu nie potrzebujesz tablic. Potrzebne Ci są poprzednie i nowe wartości tego co liczysz, po prostu porób te zmienne, odpowiednio zamieniaj i sprawdzaj warunki...

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