BRAUCHE SCHNELLE UND Dringende hilfe
-
Generell
Fehlerbeghandlung
Abfrage wollen sie nochmal j nein
StruktogrammAufgabenstellung
Erstellen sie ein Programm wo der Benutzer zeichenweise (in ein Array d.H pro Buchstabe ein cin und ende mit ,@') das wort eingeben kann (wiederholen ist möglich sihe allgemeinesSie speichern (egal ob der Benutzer Groß- Kleinschreibung eingibt in dem Array nur Großbuchstaben)
Wenn der Benutzer ein Wort vollständig eingegeben hatt, soll mittels rekursiver Funktion palindrom ermittelt werden ob dieses Wort ein Palidrom ist (rückgabe der Funktion ist boolean)
Pallindrom ist ein wort das vorwärts und Rückwärtsgelesen gleich lautet zum beispiel otto oder Madam
das programm sol im c geschrieben werden ohne Globale varriablen
kann mir da irgendjemand schnell helfen
-
Programmier ert seit 2 wochen und weis hinten un dvorn nicht wie ich das angehen soll das was unten steht hab ich zur zeit komm aber nicht weiter
#include <iostream.h> #include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> typedef char feld[20]; void initarray(feld &wort); void eingabe(feld &wort); void main () { feld wort; char weiter='J'; initarray(wort); while (weiter!='N') { eingabe(wort); cout<<"Erneutes Ausfuehren (J/N): "; cin>>weiter; weiter=toupper(weiter); } } void initarray(feld &wort) { for (int i=0; i<20; i++) wort[i]=0; } void eingabe(feld &wort) { char bst; int anz=0; do { cout<<"Geben Sie den Buchsttaben ein: "; cin>>bst; bst=toupper(bst); wort[anz]=bst; anz++; } while (bst!='@'); for (int i=0; i<5; i++) cout<<wort[i]; }
-
1.) cout/Cin sind meines wissens c++ nicht c.
1.1) cin selbst liest meines wissens immer von Eingabe begin bis zum nächsten Whitespace und das nachdem man Enter gedrückt hat, zum einlesen einzelner Zeichen nicht zu gebrauchen, daraus resultiert auch, daß immer nur der erste Buchstaben der eingegeben wird in bst enthalten ist.
2.) Wo genau ist denn Dein Problem? nicht jeder hat Zeit und Lust deinen Code zu kopieren und zu kompilieren, oder einen Compiler vor Ort
-
cout und cin ist defenetif C++, du ganst grosbuchstaben so schreiben. Die theory sagt folgendes. Die kleinen zahlen werden im speicher mit einer zahlen sagen wir von 50(a) bis 83(z) dargestelt. Dagen die grosen von 100(A) bis 150(Z). Nun must nur deine eingabe testen in welchen bereich die eingabe sich befindet. Wenn dein buchstabe a ist mit wert 50 ist must du nur noch 50 dazu addieren schon woila hast du nur noch grosse zahlen, das ganze packst du einen Array. So wurte ich es als erstes angehen. Um die entbedingung zu machenmachst du eine while shcleife die so ist while(char=='@').Danach mit einer for schleife vom letzten buchstaben an ruckwert einen buchstaben druken.Von i=20; Bis i==0 ist(immer i=i-1; da du von ende am anfang gehen wilst). fertich.
Intressantes problemm wileicht mache ich es in den nächsten tagen. habe aber aufgaben selber
.
TIP: Und pack nicht so viele HEADER datein in dein programm ein zeigt nehmlich das du nicht weist was du macht.Ich vertsehe auch nicht wo dein problemm ist poste es noch mal
-
zahlen sagen wir von 50(a) bis 83(z) dargestelt
"sagen wir" gibts nicht, das ist festgelegt:
http://www.torsten-horn.de/techdocs/ascii.htm
a(97) - z (122)
A(65) - Z (90)
Das ist die ASCII - Tabelle, das ist keinesfalls willkürlich.....Intressantes problemm wileicht mache ich es in den nächsten tagen. habe aber aufgaben selber
Offensichtlich....
Und pack nicht so viele HEADER datein in dein programm ein zeigt nehmlich das du nicht weist was du macht.
Ohje......das kann man so wohl kaum sagen, es kommt immer drauf an, was man braucht. Wenn du viele Funktionen brauchst, musst du u. U. auch viele Header einbinden!! In diesem fall würde ich das ganz Header Gedöns einfach durch folgendes ersetzen:
#include <iostream> using namespace std;
Achja, und void main() durch int main(). Warum:
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=main#AnswGab aber auch hier schon genügend Standpauken deswegen.
-
@toni1982:
http://pronix.de/modules/C/openbook/Du solltest dir das mal zur Gemüte führen, denn nach 2 Wochen sollte man dein Problem eigentlich hinbekommen, sofern man ein ordentliches Buch zu Hand hat. Denn allein schon das Einbinden der Header zeigt, dass das offensichtlich nicht der Fall ist.
Achja, cin und cout und iostream, wie in meinem vorherigen Beitrag, natürlich nicht benutzen, das ist C++. Du musst dort einfach nur stdio.h einbinden und printf() benutzen.....
-
oder eher in 2 stunden
#include <stdio.h> int main(void) { printf("Hey du bpener gib was ein\n"); klo(); printf("\n\n"); } void klo(); { char MasterUser; scanf("%c",&MasterUser); if(MasterUser!='@') klo(); printf("%c",&MasterUser); }
Ich habs noch nicht compiliert aber so irgend wie funktioniert das.
-
Also wenn ein Anfänger einem Anfänger etwas erklärt, sollte der erklärende Anfänger zumindest den Code prüfen, den er postet. Es war mit Sicherheit gut gemeint, aber der Code wird sich so nicht kompilieren lassen und ist falsch.
Zumal die Aufteilung in Funktionen auch sehr inkonsqeuent ist....
#include <stdio.h> void klo(); // Vorwärtsdeklaration der Funktion... int main(void) { printf("Hey du bpener gib was ein\n"); klo(); printf("\n\n"); } void klo() { char MasterUser; scanf("%c",&MasterUser); if(MasterUser!='@') klo(); printf("%c",MasterUser); // Du willst das Zeichen ausgeben lassen, nicht die Adresse.... }
Abgesehen davon ist nach sowas auch nie gefragt worden......
-
Nicht wqas meinte er dann, ja diese wochen sind bei mir zeiger und so tage ales was ich programmiere dreht sich um zeiger deshalb kommt automatisch & und * im code vor. Soory leute
-
Also ich sehe auch kein großes Problem in der Sache. Mit ein wenig Bücherstöbern müsste das leicht zu lösen sein.
Es gibt übrigens eine Headerdatei, die da heißt ctype.h und da gibts manchmal sehr interesante Funktionen drin, wie z. B. tolower() (macht aus einem Großbuchstaben einen Kleinbuchstaben) und toupper() (macht aus einem Kleinbuchstaben einen Großbuchstaben).