• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

spoj - zadanie zliczacz liter

0 głosów
414 wizyt
pytanie zadane 14 czerwca 2022 w C i C++ przez polandonion Dyskutant (7,710 p.)

witam, kilkanascie minut temu udalo mi sie zrobic zadanie na spoju: link

w kodzie szukalem dosc dlugo bledu, ale sie okazalo, ze w linii 15.

for(int i=0; i<n+1; i++){

mialem blad, ktory jest dosc dziwny; gdy zamiast n+1 wpisze n, co na poczatku robienia kodu zrobilem, program w petli nie wykona n operacji, tylko n-1. Jest to bardzo dziwne zjawisko, gdyz w petli ide od 0, wiec przy n nie powinna stac jedynka. Prosze o pomoc, dzieki z gory :D

 

#include<iostream>
#include<string>
using namespace std;
int tab[52];
void f(string s){
	for(int i=0; i<s.size(); i++){
		if(s[i]==' ') continue;
		if(s[i]>='A' and s[i]<='Z') tab[s[i]-'A'+26]++;
		else tab[s[i]-'a']++;
	}
}
int main(){
	short n; cin>>n;
	string s;
	for(int i=0; i<n+1; i++){
		getline(cin,s);
		f(s);
	}
	for(int i=0; i<26; i++)
		if(tab[i]) cout<<(char)(i+'a')<<" "<<tab[i]<<endl;
	for(int i=26; i<52; i++)
		if(tab[i]) cout<<(char)(i-26+'A')<<" "<<tab[i]<<endl;
}

 

1 odpowiedź

+2 głosów
odpowiedź 14 czerwca 2022 przez Great Stary wyjadacz (12,660 p.)

std::getline

Pobierając dane za pomocą operatora >> zostawiasz w strumieniu znak nowej linii. Funkcja std::getline czyta natomiast wszystkie dane do wystąpienia znaku nowej linii. Możesz odrzucić ten znak:

short n; 
cin>>n;
cin.ignore(); // lub cin >> ws;
komentarz 14 czerwca 2022 przez polandonion Dyskutant (7,710 p.)
edycja 14 czerwca 2022 przez polandonion
ok, dzieki

Podobne pytania

0 głosów
0 odpowiedzi 368 wizyt
pytanie zadane 30 marca 2020 w Java przez Fesq Nowicjusz (170 p.)
0 głosów
1 odpowiedź 500 wizyt
pytanie zadane 6 marca 2022 w Python przez ambitny Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 1,132 wizyt
pytanie zadane 2 października 2018 w SPOJ przez krawiecki Początkujący (490 p.)

93,736 zapytań

142,672 odpowiedzi

323,294 komentarzy

63,298 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...