mediana i najczestsze wartosci

slawoj5
Użytkownik
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

Post autor: slawoj5 »

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.
Awatar użytkownika
Hamster
Użytkownik
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

Post autor: Hamster »

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;
}
slawoj5
Użytkownik
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

Post autor: slawoj5 »

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.
Awatar użytkownika
Hamster
Użytkownik
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

Post autor: Hamster »

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.
Awatar użytkownika
kadiii
Użytkownik
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

Post autor: kadiii »

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 :wink:
Hamster spójrz na fragment swojego kodu

Kod: Zaznacz cały

for(i=0;i<M;i++)
{
if(a[i]==a[i-1]) 
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... :wink:
Pozdrawiam(P.S co ty taki na te 'Pomógł' pazerny :D Hamster)
Awatar użytkownika
Hamster
Użytkownik
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

Post autor: Hamster »

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 :P
Awatar użytkownika
kadiii
Użytkownik
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

Post autor: kadiii »

A i jeszcze małe pytanko:
void najczestsze()
{
for(i=0;i
Awatar użytkownika
Hamster
Użytkownik
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

Post autor: Hamster »

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
Awatar użytkownika
kadiii
Użytkownik
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

Post autor: kadiii »

Nie upieram się tylko zauważam niejasność. Chyba jednak rozumiem na czym polega problem: inaczej zrozumieliśmy polecenie
Wypisać najczęstsze wartości i podać ile ich jest
ja to zrozumiałem tak, że jak liczba występuje najczęściej to ją wypisujemy

Kod: Zaznacz cały

2 2 3 3 3 3 3 3 4 4 7 7

Suma 12 
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
ODPOWIEDZ