c++ / struktury

woznyadam
Użytkownik
Użytkownik
Posty: 242
Rejestracja: 23 kwie 2006, o 13:03
Płeć: Mężczyzna
Lokalizacja: Gdynia
Podziękował: 97 razy

c++ / struktury

Post autor: woznyadam »

Witam,
mam do napisania program, rejestrujacy dane i ma byc w nim maxksymalnie 50 elementow. jak to zrobic, te ograniczenie?















#include
#include
#include

using namespace std;

struct samochod
{
int cena;
string marka;
string kolor;
string model;
int rocznik;
};

int main(int argc, char *argv[])
{
int i;
samochod dane;
for(i=1;i>dane.kolor;
cin>>dane.model;
cin>>dane.rocznik;
}
for(i=1;i
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

c++ / struktury

Post autor: soku11 »

Kod: Zaznacz cały

#include <cstdlib>
#include <iostream>
#include <string>
#define MAX 50
typedef unsigned int uint;

using namespace std;

struct samochod
{
  uint cena;
  string marka;
  string kolor;
  string model;
  uint rocznik;
};

int main(int argc, char *argv[])
{
  uint i,ile;
  samochod dane[MAX];

  cout<<"Ile samochodow chcesz wczytac?"<<endl;
  cin>>ile; 

  if(ile>MAX)
  {
    cout<<"ZLE DANE!";
    exit(1);
  }

  for(i=0;i<ile;i++)
 {
    cout<<"Auto nr. "<<i+1;
    cout<<"Podaj cene: "<<endl;
    cin>>dane[i].cena;
    cout<<"Podaj marke: "<<endl;
    cin>>dane[i].marka;
    cout<<"Podaj kolor: "<<endl;
    cin>>dane[i].kolor;
    cout<<"Podaj model: "<<endl;
    cin>>dane[i].model;
    cout<<"Podaj rocznik: "<<endl;
    cin>>dane[i].rocznik;
  }
  cout <<endl;
  for(i=0;i<ile;i++)
  {
    cout<<"Dane pojazdu nr: "<<i+1<<endl;
    cout<<"Cena - "<<dane[i].cena;
    cout<<"; Marka - "<<dane[i].marka;
    cout<<"; Kolor - "<<dane[i].kolor;
    cout<<"; Model - "<<dane[i].model;
    cout<<"; Rocznik - "<<dane[i].rocznik<<endl;
  }

  getch();
  return 0;
} 
Ja to widze np tak POZDRO
woznyadam
Użytkownik
Użytkownik
Posty: 242
Rejestracja: 23 kwie 2006, o 13:03
Płeć: Mężczyzna
Lokalizacja: Gdynia
Podziękował: 97 razy

c++ / struktury

Post autor: woznyadam »

to ja takiego czegos jeszcze nie mialem bo mi sie wydaje ze trzeba gdzie dac [50] ale gdzie wstawie tam blad
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

c++ / struktury

Post autor: soku11 »

No zrob tak:

Kod: Zaznacz cały

#include <cstdlib>
#include <iostream>
#include <string>
#define MAX 50
typedef unsigned int uint;

using namespace std;

typedef struct 
{
  uint cena;
  string marka;
  string kolor;
  string model;
  uint rocznik;
} samochod;

int main(int argc, char *argv[])
{
  uint i,ile;
  samochod dane[MAX];

  cout<<"Ile samochodow chcesz wczytac?"<<endl;
  cin>>ile;

  if(ile>MAX)
  {
    cout<<"ZLE DANE!";
    exit(1);
  }

  for(i=0;i<ile;i++)
 {
    cout<<"Auto nr. "<<i+1;
    cout<<"Podaj cene: "<<endl;
    cin>>dane[i].cena;
    cout<<"Podaj marke: "<<endl;
    cin>>dane[i].marka;
    cout<<"Podaj kolor: "<<endl;
    cin>>dane[i].kolor;
    cout<<"Podaj model: "<<endl;
    cin>>dane[i].model;
    cout<<"Podaj rocznik: "<<endl;
    cin>>dane[i].rocznik;
  }
  cout <<endl;
  for(i=0;i<ile;i++)
  {
    cout<<"Dane pojazdu nr: "<<i+1<<endl;
    cout<<"Cena - "<<dane[i].cena;
    cout<<"; Marka - "<<dane[i].marka;
    cout<<"; Kolor - "<<dane[i].kolor;
    cout<<"; Model - "<<dane[i].model;
    cout<<"; Rocznik - "<<dane[i].rocznik<<endl;
  }

  getch();
  return 0;
} 

woznyadam
Użytkownik
Użytkownik
Posty: 242
Rejestracja: 23 kwie 2006, o 13:03
Płeć: Mężczyzna
Lokalizacja: Gdynia
Podziękował: 97 razy

c++ / struktury

Post autor: woznyadam »

udalo mi sie juz napisac ten program ;D

tylko czy musi byc [50+1] a nie samo [50]?
bo jak mam [50] to on mi sie zawiesza przy wprowadzaniu ostatnich danych




#include
#include
#include

using namespace std;

struct samochod
{
int cena[50+1];
string marka[50+1];
string kolor[50+1];
string model[50+1];
int rocznik[50+1];
};

int main(int argc, char *argv[])
{
int i,a=0;
cout
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

c++ / struktury

Post autor: soku11 »

Nie rozumiem twojego pytania... Jesli masz [50] to masz elementy: 0,1,2,...,49 czyli rowno 50 elementow... Jesli masz [50+1] to oczywiscie 51 elementow a ma byc 50... Cos zle kombinujesz...

BTW. Wpisz moj kod powinien byc dobry. Co do twojego kodu to:

Kod: Zaznacz cały

 dane.kolor[i]
jest niepoprawny jak i reszta odwolywania sie do tego... POZDRO
ODPOWIEDZ