Cześć,
z góry uprzedzam że jestem bardziej niż początkująca...
Mam do zrobienia zadanie.
Próbowałam sama ale nie wiem co źle robię, gdyż w trzeciej części zadania wyswietla mi albo najdłuzszy albo end.
Drugiej części jeszcze nie mam w ogóle.
Moze ktoś sie zlituje i pomoże ..
Treść:
Zadanie 3
Napisać program, który:
a. wczytuje ciąg napisów aż do napotkania napisu ”end” b. drukuje informację, ile razy wczytano po sobie dwa napisy kończące się tym samym znakiem (napisu "end" nie brać pod uwagę)
b. drukuje informację, ile razy wczytano po sobie dwa napisy kończące się tym samym znakiem (napisu "end" nie brać pod uwagę)
c. drukuje długość najkrótszego napisu (napisu "end" nie brać pod uwagę)
Uwaga: Zadanie rozwiązać bez użycia tablic.
Wskazówki
- Napisy należy wczytywać instrukcją cin (do pierwszego niewidocznego znaku)
- Napisy można porównywać ze sobą w całości, za pomocą operatora ==
- Jeśli napis jest zmienną typu string, to jego długość (liczba znaków) jest równa n= napis.size( ), zaś ostatni znak to napis[n-1].
A oto mój kod:
string napis;//deklaracja zmiennej ³añcuchowej
string napis_min;
int licz_min;
int n= napis.size();
int m=napis_min.size();
cout<<"Podaj ciag znakow oddzielonych spacjami, tabularotarami i entrami."<<endl;
cout<<"end konczy wczytywanie"<<endl;
napis_min=napis;
do {
cin>>napis;
if (n<m) {
napis_min=napis;
licz_min=1;
}
else if (n==m)
{
licz_min++;
}
;
}
while (napis!="end");
cout<<"Najkrotszy wyraz to:"<<"\t"<<napis<<endl;
return 0;
}