Zum Inhalt springen

Psycho~zicke

Mitglieder
  • Gesamte Inhalte

    84
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Psycho~zicke

  1. ahhh ok da hab ich mich wohl vertan. Nun bleibt er hinter der Eingabezeile und springt nicht mehr in die nächste Zeile aber er entfernt die leerzeichen und Tabzeichen nicht am ende der Eingabezeile. Danke für die Hilfe. Nun weiß ich zumindest schon ma das das Programm so nicht funktioniert und kann weiter schauen woran es liegt.
  2. Weil ich keine ahnung hab wie dieser Debugger funktioniert. Hab grad versucht daraus schlau zu werden aber der wiederholt die schleife immer un immer wieder. Entweder hab ich nen Fehler im code oder versteh den debugger noch nicht. Dazu muss ich sagen, ich hab den debugger vorgestern das erstema gezeigt bekommen für ca 10 minuten. Kenn mich mit dem noch nicht so aus.
  3. Hallo! Ich bins ma wieder! Tut mir auch echt voll leid das ich immer wieder hier nachfragen muss aber leider hat bei uns in der Firma im mom keiner Zeit mir weiter zu helfen bzw fragen zu beantworten. Also ich möchte ein Programm schreiben das wenn am ende der Eingabezeile ein Leerzeichen oder Tabzeichen ist, das es weg gelassen wird. Genauso soll das Programm leerezeilen iggnorieren. Ich hab ein Programm geschrieben das füg ich auch gleich bei es zeigt mir keine Fehlermeldung oder sowas aber ich kann nach dem compilieren nicht erkennen ob die leerzeichen bzw tabzeichen nun weg sind da er mir die Zeile ausgibt un dann direkt in die nächste Zeile springt. So das ich nicht sehe was er nach dem letzten Buchstaben/Zeichen schreibt. Meine frage wäre nun: Ist das Programm richtig geschrieben un erfüllt seinen Zweg? Hoffe ja das ihr mir da weiter helfen könnt bzw evt wisst wie ich das elbst überprüfen kann. /********************************************************* *Schreibe ein Programm, das Leerzeichen und Tabulatorzeichen am Ende von *Eingabezeilen entfernt und das auch völlig leere Zeilen unterdrückt. **********************************************************/ #include <stdio.h> void main() { // deklaration der Variablen int iEingabe; int iVorher; // Zuordnung der Werte iVorher = 'w'; // Wird solange ausgeführt wie die Eingabe nicht A ist. while ((iEingabe = getchar ()) != 'A') { // Ausführungsbedingung // Prüft ob iEingabe ein '\n' ist. Falls es nicht zutrifft // geht die Schleife bei else weiter ansonsten // geht die Schleife ganz normal weiter. if (iEingabe == '\n') { // Prüft ob iVorher kein ' ' oder \t ist. Falls es keins ist // tritt putschar in kraft. Falls doch beginnt die Schleife von vorne. if (iVorher != ' ' || iVorher !='\t') { putchar (iEingabe); // gibt iEingabe aus, wenn beide if-Funktionen erfüllt sind. } } // Else tritt dann in Kraft wenn iEingabe kein ' ' ist. else { putchar (iEingabe); // gibt iEingabe aus, wenn nur die erste if-Funktion nicht erfüllt ist. } iVorher = iEingabe; // kopiert den Wert von iEingabe auf iVorher. } printf("fertig"); // Beendet das Programm. }
  4. ja das hab ich dann auch festegstellt... Aber aller anfang ist schwer... Bin ja noch ganz weit am anfang Danke schön für deine hilfe, nun funktioniert es so wie ich es gern hätte.
  5. ich hab den fehler gefunden. :upps Nun funktioniert es. Danke für die hilfe!
  6. Also ich möchte ja nicht das das Porgramm einfach ausgeht sondern das es mir dann anzeigt das der Text zu kurz somit nicht minline erfüllt oder wenn ich die maxline überschreite er mir dann halt sagt das der Text zu lang ist. Hab mir das Programm grad noch mal angeschaut un bin zu dem entschluss gekommen das das mit dem j schwachsin ist. Denn ich hab dem Programm ja oben schon gesagt das wenn ein Zeilenumbruch kommt er das Programm beenden soll, da ist es absolut überflüssig an der stelle j einen Zeilenumbruch einzufügen. Ich hab das jetzt ma raus genommen un den code bissel verändert. Allerdings sagt mir mein Compiler nun das ich nen Fehler drin hab. der neue code ist: /*Schreibe ein Programm, das alle Eingabezeilen ausgibt, die länger als 80 *Zeichen sind. * ********************************************************/ #include <stdio.h> # define MAXLINE 20 // maximale Länge einer Eingabezeile # define MINLINE 10 // mindest Länge der Eingabezeile die Ausgegeben werden soll // deklaration der Funktion getline int getline(char line[MAXLINE], int maxline); int main() { int len; // Länge der momentanen Eingabezeile char line[MAXLINE]; // momentane Eingabezeile while ((len = getline(line, MAXLINE))>0) { if (len > MINLINE) // wenn len größer ist als MINLINE dann geb... printf ("%s", line); // ...die länge der Zeile und die Zeile aus. if (len < MINLINE) // sollte len kleiner sein wie die vorgebene Minline gibt mir die nächste zeile aus. { printf ("Diese Zeile ist zu kurz"\n); } if (len > MAXLINE) // sollte len größer sein wie die vorgegebene Maxline dann gib mir die nächste Zeile aus. { printf ("Diese Zeile ist zu lang"\n); } } return 0; // ansonsten gib den wert 0 zurück. } // Definition der Funktion getline int getline(char line[MAXLINE], int maxline) { // deklaration der Variablen int c, i; for(i=0;(c=getchar())!='A' && c!='\n'; ++i) { if (i<maxline-2) // maxline-2 weil einma -1 da bei 0 angefangen wird zu zählen und einma -1 weil ich ein \0 anhängen mag. { line[i] = c; // die Zeichenkette line mit der zu geordneten Max. größe ist gleich die Eingabe } } line[i] = '\0'; // setz '\0 ' ans ende der Zeichenkette so das das Programm weiß das die Zeichenkette nun vorbei ist. return i; } der fehler dazu ist: Fatal neu2.c 30:Internal Compiler error in function main
  7. Mit nicht geordnet meine ich das das Programm einfach ausgeht. Sich halt aufhängt oder wie man das nennt. Es kommt keine Fehlermeldung sonst hätte ich sie dazu geschrieben. was meinst du mit Du initialisierst j nicht??? ich weiß wenn ich ehrlich bin nicht ma für was ich j brauche denn ich möchte doch nur die eingabe rausgeben bekommen und dafür müsste doch i vollkommen reichen oder?
  8. Hab die getline funktion hinzugefügt aber so richtig rund läuft es immernoch nicht. Man kann das Programm zwar ausführen aber es beendet sich teilweise nicht geordnet. Sehr Ihr evt woran das liegt? /******************************************************* *Schreibe ein Programm, das alle Eingabezeilen ausgibt, die länger als 80 *Zeichen sind. * ********************************************************/ #include <stdio.h> # define MAXLINE 1000 // maximale Länge einer Eingabezeile # define MINLINE 80 // mindest Länge der Eingabezeile die Ausgegeben werden soll // deklaration der Funktion getline int getline(char line[MAXLINE], int maxline); void main() { int len; // Länge der momentanen Eingabezeile char line[MAXLINE]; // momentane Eingabezeile while ((len = getline(line, MAXLINE))>0) { if (len > MINLINE) // wenn len größer ist als MINLINE dann geb... printf ("%s", line); // ...die länge der Zeile und die Zeile aus. } return 0; // ansonsten gib den wert 0 zurück. } // Definition der Funktion getline int getline(char line[MAXLINE], int maxline) { // deklaration der Variablen int c, i, j; for(i=0;(c=getchar())!='A' && c!='\n'; ++i) { if (i<maxline-2) // maxline-2 weil einma -1 da bei 0 angefangen wird zu zählen und einma -1 weil ich ein \0 anhängen mag. { line[i] = c; // die Zeichenkette line mit der zu geordneten Max. größe ist gleich die Eingabe } if (c =='\n') { line[j] = c; ++j; ++i; } } line[i] = '\0'; // setz '\0 ' ans ende der Zeichenkette so das das Programm weiß das die Zeichenkette nun vorbei ist. return i; }
  9. Hallöchen! Hab ma ne frage un es wäre lieb wenn mir jemand helfen könnte. Ich hab eine aufgabe und hab auch das Programm dazu geschrieben. Nur leider zeigt der compiler mir immerwieder nen fehler. Ich hab nun alles versucht aber finde diesen Fehler nicht. Ich schreib ich mal den Quelltext un den fehler hier hin evt sehr ihr ja wo der fehler liegt. Danke schon ma im vorraus *Schreibe ein Programm, das alle Eingabezeilen ausgibt, die länger als 80 Zeichen sind. * ********************************************************/ #include <stdio.h> # define MAXLINE 1000 // maximale Länge einer Eingabezeile # define MINLINE 80 // mindest Länge der Eingabezeile die Ausgegeben werden soll int getline(char line[], int maxline); void main() { int len; // Länge der momentanen Eingabezeile char line[MAXLINE]; // momentane Eingabezeile while ((len = getline(line, MAXLINE))>0) { if (len > MINLINE) // wenn len größer ist als MINLINE dann geb... printf ("%s", line); // ...die länge der Zeile und die Zeile aus. } return 0; // ansonsten beginn von vorne. } Der Fehler dazu lautet: ERROR:Undefined symbol _getline in module 1-172.c
  10. Also irgendwie funktioniert das nicht wirklich... Er speichert das automatisch unter .cpp und Compiliert es nicht sondern sagt mir das das Projekt veraltet wäre. Kann man das da nicht einstellen oder so das die Programme auf C sind? Irgendwie is die Hilfe da auch so umständlich das ich da absolut nicht durchblick...
  11. Hallöchen Ihr lieben! Hab da ma ne Frage und hoffe das mir hier evt jemand helfen kann. Hab das Oben genannte Programm aber kann absolut nicht herrausfinden wie ich dort C Programme schreiben und sie dann Compilieren kann. Irgendwie lande ich immer wieder bei C++ aber diese Sprache muss ich noch nicht lernen. Hoffe ja das sich hier jemand damit auskennt und mir evt helfen kann... Liebe Grüße die Zicke
  12. Ja da muss ich dir voll un ganz recht geben. Leider wusste ich nicht das es da einen unterschied gibt aber was man hat hat man... danke noch mal
  13. Echt jetzt??? ja kein wunder das das nicht geht *schäm* danke für deine schnelle hilfe...
  14. Hallöchen! Hab mal eine Frage und zwar hab ich mir das oben genannte Programm runtergeladen. Leider blicke ich da nicht ganz so durch. Ich versuche ein Programm so wie ich es in meinem Buch "Programmieren in C" gelernt habe auszuführen aber es zeigt mir jedes mal etwas an was womit ich nicht wirklich was anfangen kann... Hier mal ein Beispiel: gelernt habe ich das so /******************************************************* * Created from : Sabrina Werner * Created at : 08.08.2007 * Updated at : 09.08.2007 * * Description : Kapitel 1, Aufgabe 3 * * *********************************************************/ #include <stdio.h> main() { // deklaration der Variablen int fahr, celsius; int lower, upper, step; } und das Programm zeigt mir die anfangs zeilen aber so using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { } } } Kennt sich jemand damit aus? Evt ist es ja nicht das selbe C wie ich es gerade lerne. Vielen danke schon ma im vorraus für eure hilfe Liebe Grüße die Zicke
  15. Also ich hab das Programm jetzt mal so geschrieben. Es ist zwar nicht als Histogramm aber das kann man ja noch mal ändern. Leider gibt es mir die längen der Wörter immernoch nicht aus. Evt sieht ja jemand von euch den fehler. Liebe grüße die Zicke #include <stdio.h> #define Maxword 11 #define IN 1 #define OUT 0 void main() { // deklaration der Variablen int iEingabe, iEingabe2, nc, state; int langeb; int maxvalue; int uberlaufe; int wortl[Maxword]; // Zuordnung der Werte iEingabe = 0; state = OUT; nc = 0; // die Anzahl der Zeichen in einem Wort uberlaufe = 0; // Anzahl der Wörter die länger sind als Maxword vorgibt // Wird solange ausgeführt bis (iEingabe = getchar () != 'A') zutrifft. while ((iEingabe = getchar()) != 'A') // Wenn iEingabe ein ' ' oder ein \n oder ein \t ist dann if (iEingabe == ' ' || iEingabe == '\n' || iEingabe == '\t') { state = OUT; // beenden wir das eingebene Wort durch state = OUT. Ansonsten // geht die Schleife weiter. } /* For gibt iEingabe2 den wert 0, dann kommt die Bedinung ( iEingabe2 < Maxword), sie kontrolliert die Ausführung der Schleife, schließlich wird die Ikrementierung (++iEingabe2) ausgeführt un die Bedinung der Schleife wird neu überprüft.*/ for (iEingabe2 = 0; iEingabe2 < Maxword; ++iEingabe2) { wortl[iEingabe2] =0; // Die Wortlänge von iEingabe2 = 0 } if (nc >0) // wenn nc größer als 0 ist if (nc < Maxword) // und wenn nc kleiner als Maxword ist { ++wortl[nc]; // dann schreib die Wortlänge von nc + 1 hin } else { ++ uberlaufe; // ansonsten uberlaufe +1 nc = 0; // und nc = 0 } else if (state == OUT ) // wenn die oberen funktionen in frage kommen dann { //beenden wir ein Wort und schreiben state == OUT state = IN; // wenn die oberen funktionen nicht in frage kommen dann nc = 1; // ist nc = 1 } else { ++nc; // ansonsten +1 nc } maxvalue = 0; // der maximale Wert der Wortlänge ist = 0 /* For gibt iEingabe2 den wert 1, dann kommt die Bedinung ( iEingabe2 < Maxword), * sie kontrolliert die Ausführung der Schleife, schließlich wird die Ikrementierung *(++iEingabe2) ausgeführt un die Bedinung der Schleife wird neu überprüft.*/ for (iEingabe2 = 1; iEingabe2 < Maxword; ++iEingabe2) if (wortl[iEingabe2] > maxvalue) // Wenn die Wortlänge von iEingabe2 größer ist wie // der maximale Wert der Wortlänge (maxvalue) maxvalue = wortl[iEingabe2]; // dann ist der maximale Wert der Wortlänge(macvalue) gleich der // Wortlänge von iEingabe2 /* For gibt iEingabe2 den wert 1, dann kommt die Bedinung ( iEingabe2 < Maxword), * sie kontrolliert die Ausführung der Schleife, schließlich wird die Ikrementierung *(++iEingabe2) ausgeführt un die Bedinung der Schleife wird neu überprüft.*/ for (iEingabe2 = 1;iEingabe2 < Maxword; ++iEingabe2) { // trifft die For schleife zu wird prinf ausgeführt. printf ("%5d - %5d: " , iEingabe2, wortl[iEingabe2]); } if (wortl[iEingabe2] > 0) // Wenn die Wortlänge von iEingabe2 größer ist als 0 { langeb = 1; // dann schreibt langeb = 1 (länge des Balken) } else langeb = 0; // ansonsten ist die länge des balken = 0 while (langeb > 0) // Wenn die länge des balken größer wie 0 { putchar('*'); // dann geb ein * aus. } if (uberlaufe > 0) // wenn überläufe größer wie 0 sind // dann gib aus "das sind ?? viele wörter, newlines, überläufe und Maxword" printf ("Es sind %d Wörter,%d\n, %d uberlaufe, %d Maxword"); printf ("fertig"); // Beendet das Programm. }
  16. Hallo jungs! ich hab weder aufgegeben noch gekündigt lieg nur leider flach und mein inet zuhause ist heut irgendwie auch nicht wirklich begeistert vom funktionieren. Bin ab morgen wieder auf der arbeit und werde noch einma versuchen diese doofe Aufgabe zu lösen. Aber wie heißt es so schön, aller Anfang ist schwer. Aber ich danke euch trotzdem sehr für eure hilfe!!! Liebe grüße die Zicke
  17. Also ich hab mal wieder bissel im INet rumgeschaut un hab mir da nen anfang zusammen gebastelt ich hoff ja ma das er nun so einigermassen stimmt. Wäre lieb wenn ihr ma drüber schauen könntet. Dacht mir bevor ich da nun weiter bastel un es jetzt schon falsch is frag ich lieber ma nach. #include <stdio.h> #define IN 1 #define OUT 0 #define Maxhist 15 #define Maxword 11 void main() { int iEingabe, iEingabe2, nc, state; int langeb; int maxvalue; int uberlaufe; int wl[Maxword]; state = OUT; nc = 0; uberlaufe = 0; while (getchar() != 'A') { if (iEingabe == ' ' || iEingabe == '\n' || iEingabe == '\t') { state = OUT; } if (iEingabe2 = 0; iEingabe2 < Maxword; ++iEingabe2) { wl[iEingabe2]=0; } if (nc >0 && nc < Maxword) { ++wl[nc]; } }
  18. es kommen beim compilieren fehlermeldungen: 4.c 4 declaration syntax error 4.c 6 declaration terminated incorrectly 4.c 6 declaration syntax error 4.c 6 declaration syntax error 4.c 13 declaration terminated incorrectly
  19. @ Guybrush Threepwood Was das Programm machen soll weiß ich ja... ich weiß nur nicht wie bzw was ich dafür eintippen muss das es das dann auch macht.
  20. @ Bläk Ich mach das nicht in der Schule zumindest nicht nur hab am 1.08.07 ne ausbildung zur FIAE angefangen und da lern ich das nun nach un nach... Muss mir halt sehr viel selbst beibringen... ich werd heut abend hier ma ne auflistung machen... @ LordTerra also bei mir läuft das nicht. Auch nicht wenn "word" nen festen wert hat. Aber vllt hab ich ja nur wieder was falsch gemacht... ich schau noch ma nach.
  21. oh doch bei "hello, world" hatte ich printf mit drin. Ok dann schau ich sie mir mal an un hoffe das ich dann weiter komme. Danke!!
  22. Irgendwie das ganze! Ich hab bisher nur mit int, while, if else, for un getchar un putchar gearbeitet. Steh also so ganz am Anfang. Mehr kann ich noch nicht. Aber mit den funktionen scheint es wohl nicht zu gehen. Oder ich bekomms nur net hin.
  23. Irgendwie bin ich nun total verwirrt... Da sind überall soviel sachen dabei die ich noch nicht dran hatte in meinem Buch das ich echt da steh mir riesen fragezeichen überm kopf. Naja ich versuch die ma aufzulösen. Trotzdem vielen danke!!
  24. hmm also mit dem tip den du mir gegeben hast hab ich das nicht wirklich verstanden... dafür hab ich wohl noch nciht genug gelernt was das Programmieren betrifft... ich habs aber mal so geschrieben wie ich denke das es richtig ist. Aber es funktioniert noch nicht so richtig. Evt kann mir ja jemand sagen wieso es nicht richtig klappt un wie es evt sein sollte... Bin mit meinem bissel wissen das ich hab absolut am ende... Aber oft ist es ja so das man die Bäume vor lauter Wald nicht sieht und die lösung ganz einfach ist. Meine Version: #include <stdio.h> void main() { // deklaration der Variablen int iEingabe; int iEingabe2; int nwhite; int nletter; int ndigit[10]; // Zuordnung der Werte iEingabe = 0; nwhite = nletter = 0; for (iEingabe2 = 0 ; iEingabe2 <10; ++iEingabe2) ndigit[iEingabe2] = 0; while ((iEingabe = getchar()) !='A') if (iEingabe >= '0' && iEingabe <= '9') ++ndigit[iEingabe-'0']; else if (iEingabe == ' ' || iEingabe == '\n' || iEingabe == '\t') { ++nwhite; } else { ++ nletter; } printf ("digits="); for (iEingabe2 = 0; iEingabe2 <10; ++iEingabe2) { printf ("%d", ndigit[iEingabe2]); printf (", white space = %d, other = %d\n", nwhite, nletter); } } Liebe Grüße die Zicke
  25. Wunderschönen Sonntag!! Ich hab da ma ne frage hat jemand ne ahnung wo ich einen C-Compiler als freeware her bekomme??? Hab im inet schon ma geschaut aber leider nix gefunden. Er sollte auf Vista laufen. Liebe grüße die Zicke

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...