1 / 85
Dec 2009

Zadanie: pl.spoj.com/problems/JZLICZ/101
--
Główny problem w zadaniu:
wykorzystanie funkcji strlen();

-- kod usunięty --

  • created

    Dec '09
  • last reply

    Sep '23
  • 84

    replies

  • 4.9k

    views

  • 33

    users

  • 5

    likes

  • 15

    links

Frequent Posters

There are 84 replies with an estimated read time of 10 minutes.

Witam.
W pierwszym kodzie może zwiększ wielkość tablic z 25 na 26.
Mi liczy dobrze, ale czy sędziemu też, tego nie wiem. wink

Liczyć to liczy dobrze ale spoj i tak nie przyjmuje ;/ Właśnie jak wprowadzi się pusty wiersz to..?

Mi Twój program jakoś dobrze nie działa.
Musisz zmienić trzy rzeczy:
-usunąć jedną linijkę w kodzie - przeanalizuj kod i zobacz co Ci wypisuje i co usunąć, żeby to naprawić
-wypisać najpierw małe a potem wielkie litery
-wypisuj tylko litery (duże i małe)

    cin.ignore();
    for(int i=0;i<t;i++)
 ..........

Może tak: question

    for(int i=0;i<=t;i++)
 .........

U mnie pusty wiersz też liczyłem i było dobrze.

Nie, to nie to.
Skoro założyliśmy, że wypisujemy tylko litery, to entery nam nie robię różnicy, więc cin.ignore jest zbędny, ale nie jest błędem. smile

Strzelam.
Tu jest błąd ?
[bbone=cpp,3121]
for(int i=0;i for(int k=0;k<1000000;k++)
tab[i]=char(0);
[/bbone]

Strzał nr. 2.
Za duża tablica, bo w zadaniu jest max. 200 znaków w linii. question

Nie ma czegoś takiego jak "za duża tablica", jeśli Ci kompiluje program. smile
Może i strata miejsca, ale nie znaczy to, że SPOJ nie zaliczy programu.

Radzę nie strzelać, tylko np. komentować kolejne części programu, uruchamiać i patrzeć, jak i czy działa. wink

Marnotrawstwo to marnotrawstwo. confused
Oto ma ja wizja dla tego zadania -kod numer 1. smiley
1.)Duża tablica wystarczy max znaków + 1.
2.)Małe tablice ciut za małe.
3.)Tamto cin.ignore zbędne.
4.)Pętla przed getline -m zbędna.
5.)Jedna z dwóch pętli za getline-m zbędna.Potem trzeba poprawić wpisywanie do
tablicy.To z break-iem zbędne.
6.)Wypisywanie jest dobre.
Powodzenia.
Pozdrawiam.

Zgadzam się mniej więcej z wszystkim oprócz ostatniego punktu.

Ale znalazłeś główny błąd autora programu. ;-]
Nie pisz jednak, który to - niech autor sam pomyśli. wink

Bo kosmita jesteś. smile
Tablice indeksujemy od zera,czyli masz tablicę tab[26],czyli w pętli od zera do 25 (< 26),a Ty masz 27 i po kiego grzyba. smiley
Dalej napisałem jak masz zrobić.
Nic innego nie mogę zrobić,bo już bym za Ciebie rozwiązał zadanie. wink
Powodzenia.

Przeanalizowałem programik jeszcze raz:
na początku zeruje liczniki występowania liczb,
jak nie ma cin.ignore() po wprowadzeniu t pętla wynonuje mi się o 1 raz mniej
po każdym wprowadzeniu zeruje tablice żeby liczył tylko to co wprowadzę;
liczy i wypisuje poprawnie od a do z i A do Z nie liczy i nie wypisuje znaków '{' '[' @ ' - przed i po alfabecie.
Wiec nie wiem w czym mam błąd... Nawet jak w testach są dłuższe ciągi znaków to po zmienieniu tablicy i tak nie działa ;/
nie wiem, po prostu nie wiem gdzie błąd question confused

Och! unamused
Twój główny problem to te dwie pętle za getline-m.
Spróbuj to zrobić na jednej.
Wtedy jak pojawi się literka 'A' w tab to tablica du[tab[zmienna]-'A']++.
Tutaj też usunąłem kodzik. wink

W tym zadanku chodzi o alfabet od a do z - abcdefghijklmnopqrstuvwxyz i do A do Z - ABCDEFGHIJKLMNOPQRSTUVWXYZ ??
Napisałem dla jasności smile Czy poza tymi znakami ma jeszcze coś wyświetlać?

Usunięto.
Ale kosmos, jaka orka. smiley
Jak jeszcze nie ma ACC to pewnie chodzi o japońskie znaki. smiley
W for jest mały haczyk, pomyśl tylko. wink
Może jednak dam Ci znowu małą podpowiedź :badaj tyle znaków ile trzeba(wstaw gdzie trzeba "strlen" ,albo zrób inny wynalazek). wink

Wrzuciłem co zapodałeś, nic...
Zrobiłem w końcu program poprawnie i dlaczego nie acc, próbowałem już chyba wszystkiego przy sprawdzaniu... warunki itp... imp
To gdzie mam ten błąd jakaś pierdoła czy co bo ja nie mogę dojść co jest nie tak;/
W którym momencie wejście, sprawdzanie, czy wyjście??

1 month later

-- kod usunięty --

Nie zerowałem tablicy...
Dzięki.

Input:

5
G DEfs  HTR Jrt JTY kIU PyuOLYuHrsHg GAR awgTERT Gwe HrTWh WS
th dhgDTh sgD Rt S RT HrH H trHWSShWrHRTWRw jtyrW Ehr
W H hRT HT YiOOkjGpoknpO HN FkJN bfSHbFSTRHb XgfqerVd
EGAXWE wgeWEcEW gEVggr HEVgWSEYCF YEtCEVY eCve r
CRSevseyvRT yRT Yer yEW yerVCER yERVyt rb nuMOOLkjghfgDStQtBDF NB

Poprawny output:

a 1
b 4
c 1
d 2
e 9
f 4
g 12
h 8
i 1
j 3
k 5
n 2
o 1
p 2
q 1
r 14
s 4
t 9
u 3
v 3
w 4
y 8
A 2
B 2
C 5
D 5
E 15
F 4
G 5
H 15
I 1
J 3
L 2
M 1
N 3
O 6
P 1
Q 1
R 14
S 9
T 13
U 1
V 6
W 12
X 2
Y 7

Powodzenia. smile