2016-04-05 19 views
-3

Ich versuche, die Anzahl der Erscheinungen jedes Buchstabens in einem Wort zu zählen, und dann, um die erste Hälfte der Erscheinungen eines Buchstabens mit 1 zu markieren, die Mitte (wenn das Wort ungerade ist) mit 2, und die zweite Hälfte mit 3Häufigkeit von Buchstaben in einem Wort

Zum Beispiel:

gerade Zahl: ddaadd sollte 111.333

ungerade Zahl sein: dddaa sollte Dieses 12313

sein ist der Code, den ich bisher haben (Ich konnte die Häufigkeiten jedes Buchstabens im Wort zählen; fo r Beispiel, für ddaadd meine Ausgabe ist: 442244):

#include <iostream> 
#include <iomanip> 
#include <map> 
#include <string> 
#include <cstdlib> 

using namespace std; 

int main() 
{ 

    map <char, int> letters,letters2; 
    string cuvant; 
    cout<<"Scrie un cuvant"<<endl; 
    getline(cin, cuvant); 

for ( int i=0; i< cuvant.size(); ++i) 
{ 
    letters[cuvant[i]]++; 
} 

for ( int i=0; i< cuvant.size(); ++i) 
{ 
    cout<<letters[cuvant[i]]; 
} 


} 
+3

Es klingt wie Sie müssen lernen, wie Sie einen Debugger verwenden, um durch Ihren Code zu gehen. Mit einem guten Debugger können Sie Ihr Programm Zeile für Zeile ausführen und sehen, wo es von dem, was Sie erwarten, abweicht. Dies ist ein essentielles Werkzeug, wenn Sie programmieren wollen. Weiterführende Literatur: ** [Wie kleine Programme zu debuggen] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver

+0

Es gibt keine Frage in dieser "Frage" – Ceros

+0

@NathanOliver: Fairer Kommentar zu meiner Antwort - ich habe es gelöscht. –

Antwort

0

Okay, Sie haben den ersten Teil. Vielleicht möchten Sie den Debugger lernen, um zu sehen, was passiert. Ich empfehle Visual Studio 2015 und tutorial here.

Meine Vermutung ist, was Sie tun müssen, ist die Zeichenfolge in zwei Hälften schneiden, wenn es Buchstaben auf beiden Seiten gibt (wie wenn es gespiegelt ist). Ich kann versuchen, es später zu versuchen, aber vorerst versuchen Sie, einen Algorithmus zu schreiben, der prüft, ob es ein gleiches Zeichen in der Front und der Rückseite der Schnur gibt. Versuche es weiter und dränge.

Verwandte Themen