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++.
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++.
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.