Wylaczanie sie skompilowanego programu c++


(Paker) #1

oto kod:

#include 

using namespace std;

int main()

{


 int ile,i;

 cout<<"Podaj ile nazwisk chcesz podac: ";

 cin>>ile;

 string imie[ile];

 int telefon[ile];

 string nazwisko[ile];

 string ulica[ile];

 if (ile==0 || ile<0)

    cout<<"Podales 0 lub liczba mniejsza od 0- blad"<
 else

{ 


for(i=1;i<=ile;i++)

     {

     cout<<"Podaj "<>imie[i];

     cout<<"Podaj "<>nazwisko[i];

     cout<<"Podaj "<>ulica[i];

     cout<<"Podaj "<>telefon[i];


     }


 for (i=1;i<=ile;i++)

     {

     cout<
     cout<<"Telefon: "<
     cout<<"Ulica: "<
     j++;

     } 

} 


 cout<<"Nacisniecie dowolnego klawisza spowoduje zakonczenie.";

 getchar();

 return 0;


}

a po uruchomieniu go:

KLIK

EDIT

Nie wstawiaj bezpośrednio na forum tak dużych obrazków.

Obrazek zastąpiono linkiem

Sdar


(Sawyer47) #2

To co zrobiłeś jest niedopuszczalne, ilość elementów tablicy musi być znana podczas kompilacji, chyba że tworzysz je operatorem new - ale ty tego nie zrobiłeś. Poza tym nic nie zabezpiecza przed podaniem ujemnej liczby, co również jest nielegalne w tym przykładzie. Natomiast w pętlach for zostanie przekroczony indeks tablicy.

Jedyne co mogę poradzić to lektura na temat podstaw C++.


(Paker) #3

ale wtedy już kompilator wie jaka ma być tablica, bo była wprowadzona z klawiatury

Złączono Posta : 24.11.2007 (Sob) 21:21

to ze nie moze byc ujemna to wiem, bo to dla siebie pisze, to w ktorych linijkach mam blad


(Sawyer47) #4

To odpowiedz sobie na pytanie: najpierw kompilujesz program, czy najpierw go uruchamiasz i wprowadzasz wartość? Dynamiczne tworzenie tablicy możliwe jest za pomocą operatora new. Widać musisz się jeszcze trochę pouczyć o C++.


(Paker) #5

ok to jak go zastosowac?


(Sawyer47) #6

Wiesz co mi się wydaje że to praca domowa (sam taką miałem tyle, że w Paszczalu, chyba że to czysty przypadek :P). Bez obrazy, ale patrząc na ten kod wnioskuję, że nie wiesz wiele o C++. Cóż z tego, że dam gotowca, skoro nikt na tym nie zyska? No ale masz:

#include 

#include //chcesz używać klasy string - musisz załączyć jej plik nagłówkowy


using namespace std;


int main()

{

	int ile = 0;

	cout << "Podaj ile nazwisk chcesz podac: ";

	cin >> ile;

	cin.ignore(); // konieczne bo cin zostawia znak nowej linii w strumieniu

	if (ile <= 0) {

		cout << "Podałeś liczbę niedodatnią - bład!" << endl;

		return 1;	

	}

	string* imie = new string[ile];

	string* telefon = new string[ile];

	string* nazwisko = new string[ile];

	string* ulica = new string[ile];


	for(int i=0; i < ile; i++) //tablice indeksowane są od 0 do rozmiar-1

	{

		cout << "Podaj " << i+1 << " imie: ";

		getline(cin, imie[i]); //cin wczytuje do pierwszego białego znaku, wspianie spacji spowodowałoby błędy

		cout << "Podaj " << i+1 << " nazwisko: ";

		getline(cin, nazwisko[i]);

		cout << "Podaj " << i+1 << " ulice: ";

		getline(cin, ulica[i]);

		cout << "Podaj " << i+1 << " telefon: ";

		getline(cin, telefon[i]);


	}


	for(int i=0; i < ile; i++)

	{

		cout << i+1 << ". " << imie[i] << " " << nazwisko[i] << endl;

		cout << " Telefon: " << telefon[i] << endl;

		cout << " Ulica: " << ulica[i] << endl;

	}

}

PS. Tak w ogóle to program byłby dobrym przykładem za zastosowanie własnej klasy, ale podejrzewam, że byłoby to dla ciebie niezrozumiałe.


(sdar) #7

Paker Na forum obowiązuje używanie polskiej pisowni (włączając w to

znaki typu ą, ś, ć, ł, ó itd). Zastosuj się proszę do tej zasady i

popraw błędy. W przeciwnym wypadku temat może zostać usunięty.