tablica w c++
-
- Użytkownik
- Posty: 83
- Rejestracja: 11 lis 2009, o 00:03
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 3 razy
- Pomógł: 5 razy
tablica w c++
mam prosbe: Czy ktos moglby napisac mi kawalek programu, funkcje ktora policzy ile razy w tablicy wystepuje kazdy z jej elementow, czyli ze nr
1 wystepuje 2x
2 wystepuje 3x
itd
za pomoc z gory dziekuje
1 wystepuje 2x
2 wystepuje 3x
itd
za pomoc z gory dziekuje
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
tablica w c++
Kod: Zaznacz cały
template<class T>
void fun(vector<T>& input,map<T,int>& output)
{
output.clear();
typename map<T,int>::iterator iter;
for(unsigned int i=0;i<input.size();++i)
{
iter=output.find(input[i]);
if(iter==output.end())
output.insert(pair<T,int>(input[i],1));
else
++(iter->second);
}
}
Pozdrawiam.
-
- Użytkownik
- Posty: 83
- Rejestracja: 11 lis 2009, o 00:03
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 3 razy
- Pomógł: 5 razy
tablica w c++
hy ... wiesz co z tym ze ja programy na zajeciach pisze mp tak jak nizej:
potrafilbys jakosc napisac ta funkcje tak, zeby bylo podobnie jak program ponizej, w tym co napisałeś uzyles stwierdzen ktorych nie miałam na zajeciach.
#include <iostream>
using namespace std;
void wczytaj(int *tab, int ilosc);
int ile_nieparzystych(int *tab, int nr);
int ilepunktow(void);
int main()
{
const int rozmiar=50;
int A[rozmiar];
int n = ilepunktow();
if((n >= 1) && (n <= rozmiar))
{
wczytaj(A, n);
int ilosc=ile_nieparzystych(A, n);
if(ilosc > 0)
{
cout<<endl<<"Ilosc elementow nieparzystych= "<<ilosc<<endl;
}
else
{
cout<<endl<<"Brak elementów nieparzystych."<<endl;
}
}
else
{
cout<<"Bledna liczba elementow."<<endl;
}
cout<<endl<<endl;
system("pause");
return 0;
}
int ilepunktow(void)
{
int n = 0;
cout<<"Program wyznacza ilosc elementow nieparzystych"<<endl;
cout<<"Podaj liczbe elementow tablicy: ";
cin>>n;
cout<<endl;
return n;
}
int ile_nieparzystych(int *tab, int nr)
{
int ile = 0;
for(int i = 0; i < nr; ++i)
{
if(tab%2!=0)
{
++ile;
}
}
return ile;
}
void wczytaj(int *tab, int ilosc)
{
cout<<endl;
for(int i = 0; i < ilosc; ++i)
{
cout<<"Podaj "<<i + 1<<" element: ";
cin>>*tab++;
}
}
potrafilbys jakosc napisac ta funkcje tak, zeby bylo podobnie jak program ponizej, w tym co napisałeś uzyles stwierdzen ktorych nie miałam na zajeciach.
#include <iostream>
using namespace std;
void wczytaj(int *tab, int ilosc);
int ile_nieparzystych(int *tab, int nr);
int ilepunktow(void);
int main()
{
const int rozmiar=50;
int A[rozmiar];
int n = ilepunktow();
if((n >= 1) && (n <= rozmiar))
{
wczytaj(A, n);
int ilosc=ile_nieparzystych(A, n);
if(ilosc > 0)
{
cout<<endl<<"Ilosc elementow nieparzystych= "<<ilosc<<endl;
}
else
{
cout<<endl<<"Brak elementów nieparzystych."<<endl;
}
}
else
{
cout<<"Bledna liczba elementow."<<endl;
}
cout<<endl<<endl;
system("pause");
return 0;
}
int ilepunktow(void)
{
int n = 0;
cout<<"Program wyznacza ilosc elementow nieparzystych"<<endl;
cout<<"Podaj liczbe elementow tablicy: ";
cin>>n;
cout<<endl;
return n;
}
int ile_nieparzystych(int *tab, int nr)
{
int ile = 0;
for(int i = 0; i < nr; ++i)
{
if(tab%2!=0)
{
++ile;
}
}
return ile;
}
void wczytaj(int *tab, int ilosc)
{
cout<<endl;
for(int i = 0; i < ilosc; ++i)
{
cout<<"Podaj "<<i + 1<<" element: ";
cin>>*tab++;
}
}
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
tablica w c++
Twoje podejście nie korzysta z dobrodziejstw C++. Mogę przerobić na takie same tablice, proszę:
Pozdrawiam.
Kod: Zaznacz cały
template<class T>
void fun(T* tab,const unsigned int size,map<T,int>& output)
{
output.clear();
typename map<T,int>::iterator iter;
for(unsigned int i=0;i<size;++i)
{
iter=output.find(tab[i]);
if(iter==output.end())
output.insert(pair<T,int>(tab[i],1));
else
++(iter->second);
}
}
-
- Użytkownik
- Posty: 83
- Rejestracja: 11 lis 2009, o 00:03
- Płeć: Kobieta
- Lokalizacja: Polska
- Podziękował: 3 razy
- Pomógł: 5 razy
tablica w c++
i tak dalej nie znam nazw ktorych tu uzyłeś ... ja mam podstawy programowania ... oddałam juz jeden program ktory byl napisany podobnie jak ty napisałeś i dostałam 2, dlatego ze uzyte byly nazwy o ktorych nic nie bylo powiedziane na wykładzie ... trudno ... dzieki za fatyge
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
tablica w c++
To jak chcesz dostać rezultat tej funkcji? Nic nie zostało sprecyzowane, więc zrobiłem najprościej jak się da. Jeśli nie możesz używać map i tym podobnych, to będziesz miała mnóstwo roboty z tym (zbędnej). I ogólnie rzecz biorąc to są podstawy języka C++...
Pozdrawiam.
Pozdrawiam.
-
- Użytkownik
- Posty: 60
- Rejestracja: 10 kwie 2007, o 11:38
- Płeć: Mężczyzna
- Lokalizacja: Gorzów Wlkp.
- Podziękował: 13 razy
- Pomógł: 9 razy
tablica w c++
Dla jednego elementu:
*tab to tablica
nr to rozmiar tablicy
element to numer jakiego szukasz
liczba to wartość ile razy element występuje w tablicy
Dla każdego elementu:
0L to brak wartości (null).
Wada: usuwa wpisy z tablicy. Żeby nie usuwało wystarczy stworzyć nową tablicę pomocniczą i przepisać ("skopiować") do niej wartości ze starej tablicy.
Kod: Zaznacz cały
int ile_elementow(int *tab, int nr, int element)
{
int liczba=0;
for(int i=0; i<nr; i++)
if(tab[i]==element)
liczba++;
return liczba;
}
nr to rozmiar tablicy
element to numer jakiego szukasz
liczba to wartość ile razy element występuje w tablicy
Dla każdego elementu:
Kod: Zaznacz cały
void ile_elementow(int *tab, int nr)
{
int liczba=0;
int element;
for(int j=0; j<nr; j++)
{
element = tab[j];
if(element != 0L)
{
for(int i=0; i<nr; i++)
{
if(tab[i]==element)
{
liczba++;
tab[i]=0L;
}
}
cout<<"
Element "<<element<<" wystepuje "<<liczba<<" razy.";
liczba = 0;
}
}
}
Wada: usuwa wpisy z tablicy. Żeby nie usuwało wystarczy stworzyć nową tablicę pomocniczą i przepisać ("skopiować") do niej wartości ze starej tablicy.