Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ [Odwoływanie do struktur]

Ostatnio zmodyfikowano 2014-11-26 20:49
Autor Wiadomość
Bezet11
Temat założony przez niniejszego użytkownika
C++ [Odwoływanie do struktur]
» 2014-11-26 20:22:03
Witam!
Moim zadaniem jest stworzenie programu, który będzie zawierał strukturę samochodu z jego danymi.
Program ma obliczać ilość aut, które mają mniejszy przebieg niż 50000. Błąd widnieje w komentarzu programu.
C/C++
#include <iostream>

using namespace std;

#define przebieg_50000 50000

int n;
struct samochod {
    int pojemnosc;
    int ilosc_drzwi;
    int cena;
    bool klimatyzacja;
    std::string przebieg;
    std::string kolor;
    std::string marka;
};

int main() {
   
    int ilosc = 0;
    for( int i = 0; i < n; i++ )
         if( samochod[ i ].przebieg < przebieg_50000 ) ilosc++; // W TEJ LINI JEST BŁĄD
   
    cout << ilosc << endl;
    return 0;
}


LOG KOMPILACJI :
--------
- C++ Compiler: D:\Program Files\Dev-Cpp\MinGW32\bin\g++.exe
- Command: g++.exe "C:\Users\BARTEK\Desktop\main.cpp" -o "C:\Users\BARTEK\Desktop\main.exe"  -I"D:\Program Files\Dev-Cpp\MinGW32\include" -I"D:\Program Files\Dev-Cpp\MinGW32\mingw32\include" -I"D:\Program Files\Dev-Cpp\MinGW32\lib\gcc\mingw32\4.8.1\include" -I"D:\Program Files\Dev-Cpp\MinGW32\lib\gcc\mingw32\4.8.1\include\c++" -L"D:\Program Files\Dev-Cpp\MinGW32\lib" -L"D:\Program Files\Dev-Cpp\MinGW32\mingw32\lib" -static-libstdc++ -static-libgcc
C:\Users\BARTEK\Desktop\main.cpp: In function 'int main()':
C:\Users\BARTEK\Desktop\main.cpp:20:13: error: expected primary-expression before '[' token
  if(samochod.przebieg<50000)ilosc++;
             ^
P-121476
Quirinnos
» 2014-11-26 20:29:05
Nie lepiej przebieg dać jako inta? i wtedy sprawdzić?
P-121479
SMTI
» 2014-11-26 20:31:10
jak masz strukturę to musisz zadeklarować zmienną
daj log kompilacji, pewnie tylko to

coś takiego:
samochód samochód[n];
i rozumiem że masz zamiar ustawić wartości zmienych
P-121480
Bezet11
Temat założony przez niniejszego użytkownika
» 2014-11-26 20:36:18
Na mój rozum tam pokazuję, że brakuje czegoś przed kropką... Ale jestem laikiem w tym więc zdaje się na Was :)
Log dodałem do pierwszego posta.
P-121481
SMTI
» 2014-11-26 20:38:45
i jeszcze: jak użyłeś "using namespace std" to nie pisz std::(w sumie możesz, ale niepotrzebne)
P-121482
Bezet11
Temat założony przez niniejszego użytkownika
» 2014-11-26 20:40:05
Zmieniłem tak jak pisałeś ale nic to nie daje, nadal w tym samym miejscu błąd jest.
P-121483
Quirinnos
» 2014-11-26 20:40:56
samochód to typ zmiennej, nie zmienna.
samochod[ i ]
 to tak jak byś napisał
int[ i ]
napisałeś strukturę (czyli stworzyłeś nowy typ danych) musisz jeszcze stworzyć zmienną tego typu. tak jak robisz
int pojemnosc;
. Rozumiesz? ;)
P-121484
SMTI
» 2014-11-26 20:42:40
poczekaj, poprawiam błędy

C/C++
#include <iostream>

using namespace std;

#define przebieg_50000 50000

int n = 5;
struct samochod {
    int pojemnosc;
    int ilosc_drzwi;
    int cena;
    bool klimatyzacja;
    long long int przebieg; //porównywałeś ciąg znaków z liczbą, jeśli potrzebujesz użyć liczb do 10^200 musisz napisać odpowiednią funkcję
    std::string kolor;
    std::string marka;
};

int main() {
    samochod zmienna[ n ]; //już wiesz ^^
    int ilosc = 0;
    for( int i = 0; i < n; i++ )
         if( zmienna[ i ].przebieg < 50000 ) ilosc++;
   
    cout << ilosc << endl;
    return 0;
}
P-121486
« 1 » 2
  Strona 1 z 2 Następna strona