mediana i najczestsze wartosci
-
- Użytkownik
- Posty: 25
- Rejestracja: 17 wrz 2006, o 12:50
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 2 razy
mediana i najczestsze wartosci
Witam mam mały problem. Dostałęm na zadanie z informatyki program w c++, który ma za zadanie Wczytać i wypełnic tablicę 20 elementową z zakresu od 0 do 10. Wypisać najczęstsze wartości i podać ile ich jest oraz podać medianę.
Tablicę stworzyć umiem, jednak z najczęstszymi wartościami i medianą mam mały kłopot.
Proszę o pomoc.
Tablicę stworzyć umiem, jednak z najczęstszymi wartościami i medianą mam mały kłopot.
Proszę o pomoc.
- Hamster
- Użytkownik
- Posty: 99
- Rejestracja: 5 lis 2006, o 20:07
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 16 razy
mediana i najczestsze wartosci
Sprawdź czy działa. Jak tak, to sobie przerób na c++. Jak nie, to powyciągaj, to co działa, a jak nic nie działa to trudno się mówi
Kod: Zaznacz cały
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M 20
int i,j,k,suma,p,x,y,c;
int a[M];
float z;
void lotto()
{
srand(time(NULL));
for (i=0;i<M;i++)
{
a[i]=rand()%11;
}
}
void babel()
{
for(i=0;i<M-1;i++)
{
for(j=i+1;j<M;j++)
{
if(a[i]>a[j])
{
p=a[j];
a[j]=a[i];
a[i]=p;
}
}
}
for(k=0;k<M;k++)
{
printf("%d ",a[k]);
}
}
void najczestsze()
{
for(i=0;i<M;i++)
{
if(a[i]==a[i-1])
{
printf("%d ",a[i]);
suma++;
}
}
}
void mediana()
{
c=a[M-1];
if(c%2)
{
x=(float)c/2;
y=(float)(c/2)+1;
z=(float)(x+y)/2;
}
else
{
z=(float)(c+1)/2;
}
printf("Mediana = %f
",z);
}
int main()
{
lotto();
babel();
printf("
");
najczestsze();
printf("
Suma %d
",suma);
mediana();
return 0;
}
-
- Użytkownik
- Posty: 25
- Rejestracja: 17 wrz 2006, o 12:50
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 2 razy
mediana i najczestsze wartosci
A jak to przerobić na c++ ?? Z językiem c nie miałem doświadczenia?? Możecie to jeszcze dla mnie zrobić, programik działa.
- Hamster
- Użytkownik
- Posty: 99
- Rejestracja: 5 lis 2006, o 20:07
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 16 razy
mediana i najczestsze wartosci
Jak działą, to punktem 'pomógł' nie pogardzę :] Zajrzyj . Jak dalej nie będziesz wiedzieć to napisz ten program samemu zerkając na to co jest tutaj.
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
mediana i najczestsze wartosci
Może ci ułatwię podając poprostu jak to można rozwiązać:
-wczytać liczby do tablicy(jakąś pętlą choćby tak for(int i=1;i>t}
-posortować tablicę(dowolną metodą jaką znasz-np. przez wstawianie(InsertSort))
-mediana będzie średnią arytmetyczną t[10] i t[11]
-najczęstrzą wartość znajdziesz pętlą mając dwie zmienne naj, aktu i jaka i lecisz po tablicy sprawdzając czy skończył się już blok takich samych liczb(zwiększająca się zmienna aktu) a jak się skończy t!=t[i+1] to porównójesz aktu z naj jak aktu>naj to je naj=aktu i jaka=np.t i lecisz dalej...
Chyba proste
Hamster spójrz na fragment swojego kodu
nie patrzyłem na cały program(myślę, że lepiej podawać wskazówki niż gotowce), ale już na pierwszy rzut oka ten fragment jęsli zadziała to całkowicie przypadkiem...
Pozdrawiam(P.S co ty taki na te 'Pomógł' pazerny Hamster)
-wczytać liczby do tablicy(jakąś pętlą choćby tak for(int i=1;i>t}
-posortować tablicę(dowolną metodą jaką znasz-np. przez wstawianie(InsertSort))
-mediana będzie średnią arytmetyczną t[10] i t[11]
-najczęstrzą wartość znajdziesz pętlą mając dwie zmienne naj, aktu i jaka i lecisz po tablicy sprawdzając czy skończył się już blok takich samych liczb(zwiększająca się zmienna aktu) a jak się skończy t!=t[i+1] to porównójesz aktu z naj jak aktu>naj to je naj=aktu i jaka=np.t i lecisz dalej...
Chyba proste
Hamster spójrz na fragment swojego kodu
Kod: Zaznacz cały
for(i=0;i<M;i++)
{
if(a[i]==a[i-1])
Pozdrawiam(P.S co ty taki na te 'Pomógł' pazerny Hamster)
- Hamster
- Użytkownik
- Posty: 99
- Rejestracja: 5 lis 2006, o 20:07
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 16 razy
mediana i najczestsze wartosci
Z tym kawałkiem to racja, odpaliłem kompilator i pokazuje liczby powtarzające się, ale w zły sposób. Reszta ok.
Aaa i co do 'pazerności' - Po prostu widząc u siebie większą ilość pkt. 'Pomógł' czuje satysfakcję, że pomagam ludziom
Aaa i co do 'pazerności' - Po prostu widząc u siebie większą ilość pkt. 'Pomógł' czuje satysfakcję, że pomagam ludziom
- Hamster
- Użytkownik
- Posty: 99
- Rejestracja: 5 lis 2006, o 20:07
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 16 razy
mediana i najczestsze wartosci
Napisałem, ze nie działa jak trzeba, ale jak się upierasz, to powiem jakie było założenie. Suma się zwiększa gdy dwa elementy się powtórzą, czyli sumuje wszystkie powtórzenia. A printf wyświetla aktualne powtórzenie.
Kod: Zaznacz cały
2 2 3 3 3 3 3 3 4 4 7 7
Suma 12
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
mediana i najczestsze wartosci
Nie upieram się tylko zauważam niejasność. Chyba jednak rozumiem na czym polega problem: inaczej zrozumieliśmy polecenie w twoim przykładzie liczba najczęstsza to 3 a ilość 6, a ty uznajesz za najczęstszą liczbę, która się choć raz powtórzy. Możliwe, że o to chodziło autorowi(to bardziej wynika z tego cytatu, lecz jest chyba mniej możliwym do wymyślenia problemem), dla mnie to trochę byłoby dziwne...(wątpliwości może rozwiać jedynie autor tematu)
Pozdrawiam
ja to zrozumiałem tak, że jak liczba występuje najczęściej to ją wypisujemyWypisać najczęstsze wartości i podać ile ich jest
Kod: Zaznacz cały
2 2 3 3 3 3 3 3 4 4 7 7
Suma 12
Pozdrawiam