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]];
}
}
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
Es gibt keine Frage in dieser "Frage" – Ceros
@NathanOliver: Fairer Kommentar zu meiner Antwort - ich habe es gelöscht. –