Witam,
Podczas robienia jednego z zadań z C++'sa natknąłem się na mały problem. Mianowicie, sam program ma zliczać ilość wystąpień elementu tablicy1 o indeksie i(czyli ilość 0,1,2,3 ,4 itd), a następnie zapisywać tą wartość w tablicy2.
Np taka tablica1 = { 1,2,1,1,4,3,2,0,0}; Wynik: tablica2 = {2,3,2,1,1,0,0,0,0} /* dla rozmiaru = 9 */
Problem w tym gdy wielkość pętli(porównań) jest większa niż 50 to po skompilowaniu wyświetla się komunikat "Program przestaje działać".
A teraz kod:
#include <iostream>
using namespace std;
int main()
{
int t[] = {312,2343,111,111,312}; // przykładowa tablica
int r = 5;
int m = 2400;
int tab[m];
int licz;
for(int i=0;i<m;i++) // <--- gdy m jest mniejsze od 50 to algroytm działa prawidłowo
{
licz=0;
for(int j=0;j<m;j++){
if(t[i]==j)licz++; // rówmież gdy usuniemy if'a program działa
}tab[i]=licz; // do nowej tablicy przypisywane sa ilosci wystapien elementu 0,1,2,3,4,5,6...m w tablicy t[].
}
}
-rozmiar (m) jest taki duży ponieważ wymaga tego zadanie.
-zmiana typow zmiennych na long nie pomaga