
voldemort
Mitglieder-
Gesamte Inhalte
111 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von voldemort
-
ich bin bestens weiter gekommen. es war einfach nur ein deklarationsfehler meinerseits danke mal wieder an dieser stelle und noch ein schönes wochenende grüße
-
hallo zusammen, ich habe hier kleinere probleme mit meinem code. ich möchte zwei dateien kopieren und diese in eine neue datei schreiben. die dateien müssen nicht in der konsole ausgegeben werden. die txt wird fehlerfrei kopiert ; die jpeg datei leider nicht. int zeichen; FILE * datei = fopen("c:\\test.txt","r b"); FILE * kopie = fopen("c:\\kopie.txt","w b"); FILE * bild = fopen("c:\\gitarre.jpeg","r b"); FILE * bildc = fopen("c:\\gitarrekopie.jpeg","w b"); if (datei == NULL) { printf("Mist\n"); } do { zeichen = fgetc(datei); if (zeichen == EOF) { break; } printf("%c",zeichen); fputc(zeichen,kopie); fputc (bild,bildc); }while (zeichen != EOF); printf("\n"); fclose(datei); fclose(kopie); fclose(bild); fclose(bildc); return 0; sieht jemand den fehler? beste grüße Voldemort
-
ja,danke. das wäre die einfache variante. ich hab es nun mit einer while-schleife gelöst. jetzt muss ich nur noch das \0 mit einer if abfrage "sichtbar" machen und schon ist wieder eine aufgabe gelöst. danke für die antworten
-
zur verständnis: char zeile[1000] gets (zeile) wir geben einen text über tastatur ein der an das array übergeben wird. nun such ich eine möglichkeit die mir ermöglicht das das programm mir ausgibt wie viele buchstaben inkl leerzeichen eingegeben wurden sind. ich hoffe das war verständlicher. ich könnte auch einen neuen thread erstellen wenn das wünschenswert ist, da es ja mit dem eigentllichen thema nichts mehr zu tun hat. voldemort
-
also ein array = ein zeichen. zB Buchstaben. sagen wir mal wir schreiben einen text mit array und möchten dann zählen wie viele zeichen bzw felder ich benutzt habe.
-
ich hab die lösung für das \n problem. man muss einfach nur den zeilenpuffer erhöhen und schon schreibt das programm auch die zahlen von anfang an. das muss man erstmal wissen mal ne frage am rande. kann man arrayzeichen mit hilfe einer schleife zählen? ich wüsste grad nicht wie
-
ok, gesagt getan. das programm läuft, aber spuckt nach den 1000 zahlen noch mal 1000 zahlen aus. irgendwie kann es aber auch nicht das wahre sein das durch den zeilenumbruch so ein derber fehler auftreten kann. da muss es doch ne logische erklärung für geben, oder? bei näherem betrachten des programmes bin ich nun doch durch das array verwirrt. ich hatte ja zahl[1000] deklariert sprich zeihen zahl 0 -999. das sind doch 1000 zeichenpro speicher. wieso musste ich denn nun das array zahl[1001] benennen? grüße voldemort
-
ach ja. das war ein ganz dummer fehler von mir. ich vergaß zu beachten das er die speicher von 0-999 zählt. so weit so gut. der compiler meckert nun nicht mehr und das programm läuft. jedoch ist meine erste ausgegebene zahl 5297. d.h. irgendwo habe ich nun noch einen fehler. kann es sein das es mit der if-abfrage in der funktion zu tun hat? sobald ich diese ausklammer zeigt er mir die richgen zahlen an, oder ist das nun ein dummer zufall?
-
ok, hab da mal was geändert. ich habe meinen rest benannt und nun meckert der compiler über meine zahl. hab mein array schon runtergesetzt, aber de fehler lautet immer noch "Stack around the variable 'zahl' was corrupted". Hier der geänderte Code int primzahlcheck (int); int _tmain(int argc, _TCHAR* argv[]) { int ergebnis, zuUntersuchendeZahl = 2, zahl[999], arrayzaehler = 0; // zählt von 0 bis 999; do { ergebnis = primzahlcheck( zuUntersuchendeZahl ); if ( ergebnis == 1 ) { zahl[arrayzaehler] = zuUntersuchendeZahl; arrayzaehler++; } zuUntersuchendeZahl++; } while (arrayzaehler<=1000); return 0; } int primzahlcheck (int a) { int teiler, rest=3; for (teiler=2; teiler <= a/2; teiler++) { rest = a % teiler; if (rest == 0) { return 0; } } if (rest != 0) { printf ("%d\n",a); return 1; } }
-
hallo zusammen, in der überschrift seht ihr das ich an einem programm mit funktion und array sitze. das programm ist so weit fertig, jedoch sagt mir visual studio beim debuggen "Debug Error! Run-Time Check Failure #3 - The variable 'rest' is being used without being initialized." nach der fehler angabe hat er anscheinend probleme mit meiner variabel "rest" weil sie nicht initialisiert wird. ich versteh nun nicht ganz warum. vielleicht könnt ihr mir helfen. int primzahlcheck (int); int _tmain(int argc, _TCHAR* argv[]) { int ergebnis, zahl[1000], zuUntersuchendeZahl = 3, arrayzaehler = 0; // zählt von 0 bis 999; do { ergebnis = primzahlcheck( zuUntersuchendeZahl ); if ( ergebnis == 1 ) { zahl[arrayzaehler] = zuUntersuchendeZahl; arrayzaehler++; } zuUntersuchendeZahl++; } while (arrayzaehler<=1000); return 0; } int primzahlcheck (int a) { int teiler,rest; for (teiler=2; teiler <= a/2; teiler++) { rest = a % teiler; if (rest == 0) { return 0; } } if (rest != 0) { printf ("%d\n",a); return 1; } } grüße voldemort
-
irgendwie scheint diese primzahlberechnung in jeder schule vor zu kommen. die eine macht es nur so und die andere so
-
das schaut natürlich noch besser aus. im unterricht und in meinen lektüren wurde leider nichts davon erwähnt das ich direkt komplexere rechnungen in die schleife mit rein nehmen kann. danke für den hinweis. habe zwischenzeitlich auch schon andere aufgaben gelöst (fakultätberechnung usw) klappt im moment ganz gut. aufjedenfall bedanke ich mich bei allen hier für die tollen tipps und hilfe. ich werde wohl die nächsten paar jahre hier auch rumhängen und hoffentlich bald in der lage sein hilfreiche tipps zu geben. grüße und ein schönen rest sonntag wünscht voldemort
-
ein lebenszeichen meinerseits und mit einer lösung im gepäck hatte viel zu tun und klausuren stehen auch an und los gehts: int zeile, leer, zeichen; int x = 5; int y = 1; for (zeile = 0; zeile < 6; zeile++) { for (leer = x; leer > 0; leer--) { printf (" "); } for (zeichen = y; zeichen > 0; zeichen--) { printf ("X"); } printf ("\n"); x--; y+=2; }[/PHP] der tannenbaum schaut schon mal schön aus. die frage: ist der code so perfekt, oder gibt es verbesserungsvorschläge,oder vereinfacherungen? beste grüße voldemort
-
zum konzept. es ist ja nicht so das ich mich an den rechner setze irgendwas rumfummel und es dann hier rein stell und hilfe schrei. also bevor ich irgendwas hier veröffentlich,oder frage, sind schon einige sachen passiert. ich arbeite mittlerweile hier mit verschiedene tabellen und rechnungen. ich hab das problem das ich "noch"nicht heraus gefunden hab wie ich das umsetzen soll. zB hab ich es nun so verstanden das ich pro zeile ein zeichen anhängen muss d.h. wiederum ich müsse an die äussere schleife? nach meiner ersten übung und nach lesen meiner lektüre habe ich nun ganz verstanden wie sie funktioniert. jedoch möchte mir die idee bzw formel nicht einfallen. ich wollte ja erstmal nur schauen das ich die anzahl der zeichen in der pyramide hinbekomme, bevor ich mich dran begebe und die leerzeichen einfüge. es bringt mir ja auch wiederum nichts,wenn ich aufeinmal zwei sachen habe die nicht funktionieren es sei denn es bleibt mir nichts anderes übrig. und nun weiter an die arbeit und dem nachdenken grüße
-
so weit bin ich schon mal int zeile, zeichen; for (zeile=1;zeile<=6; zeile++) { for (zeichen=1;zeichen<=zeile;zeichen=zeichen+1) { printf ("X"); } printf ("\n"); }[/PHP] 6 zeilen und pro zeile +1 zeichen. jetzt heißt es die formel für die lösung zu finden. wenn ich nun deine und meine tabelle kombiniere muss ich beim jetzigen programm ab der zweiten zeile schauen das ich fortlaufend die zahlen folge 1,2,3,4 und 5 hinbekomme um an diie lösung kommen. richtig?
-
ich dachte eigentlich das ich +2 rechnen muss,weil ich beim vorherigen bsp ja +1 pro zeile hoch gerechnet habe. deswegen der gedanke 6 durchläufe + 2 sternchen pro durchlauf=11sternchen am ende. also muss ich in der inneren schleife schon mal +1 rechnen. dazu kommt eine neue zusätzliche "formel" um auf die 11 zeichen hoch zu rechnen?
-
ja stimmt. da hab ich nicht wirklich drüber nach gedacht, oder in mathe nicht aufgepasst. (mit "er" hab ich den rechner gemeint ) also mit der tabelle du meinst so in etwa? 1 =1 zeichen 2 =3 zeichen 3 =5 zeichen 4 =7 zeichen 5 =9 zeichen 6 =11 zeichen demnach nehme ich an das aber zeichen=1 und zeichen=zeichen+2 korrekt sind?
-
hm, weil er dann 11 zeilen machen möchte?
-
ach genau, ich muss ihn ja mitteilen das er sich die info aus der äußeren schleife holen soll, also ungefähr so: int zeile, zeichen; for (zeile=1;zeile<=6; zeile++) { for (zeichen=1;11<=zeile;zeichen=zeichen+2) { printf ("X"); } printf ("\n"); }[/PHP] so hab ich nun aber nen schwarzen bildschirm.
-
und schon haben wir die nächste aufgabe an der ich sitze * *** ***** ******* ********* *********** ich habe mir gedacht ich kümmer mich erst einmal um das bild und dann um die leerzeichen. hier denke ich das ich ne dritte schleife brauche. mein bisheriger code schaut so aus int zeile, zeichen; for (zeile=1;zeile<=6; zeile++) { for (zeichen=1;zeichen<=11;zeichen+2) { printf ("X"); } printf ("\n"); } [/PHP] also ab zeile 1 starten (zeile=1) und jeweils eine zeile (zeile++) anhängen bis 6 erreicht sind (zeile<=6). dann beim ersten zeichen anfangen (zeichen=1) und dann jeweils 2 zeichen pro zeile anhängen (zeichen+2) bis 11 zeichen in der reihe erreicht sind (zeichen<=11). habe ich in irgendeiner schleife einen denkfehler, oder sind beide müll?
-
also ich versuch mal zusammen zu fassen: a=1 ist mein startwert, a=a+1 wird so oft wiederholt bis meine 8 zeilen vorhanden sind und überprüft wird dies durch a<8 b=1 ist mein erstes x, b=1+b fügt pro zeile ein x dazu bis b<a also 8 zeilen erreicht sind richtig?
-
ich weiß ja nun nicht ob das was von bedeutung hat, aber wir sollen erst mal nur mit c programmieren. später dann gehen wir erst ins c++. vielleicht kommen hier nun ein paar sachen durcheinander. auf die idee mit den lektüren bin ich auch schon gekommen und hatte mir gestern zwei bestellt. nur das problem ist,daß wir mit dem programmieren sollen was wir kennengelernt haben und deswegen bin ich hier und da mit neuen begriffen wahrscheinllich ein bisschen überfordert, aber vielleicht kann es auch sein das sie aus dem c++ bereich kommen.
-
was bedeutet denn das unsigned int? wir haben den begriff noch nicht gehabt und ins deutsche würde das ja in etwa nicht unterzeichnete ganze zahl heißen. hast du nun mit absicht ein paar werte verändert und warum steht bei dir dann ++zeile bzw ++zeichen?
-
so, ich glaube es ist vollbracht int a, b; for (a=1;a<=8; a=a+1) { for (b=1;b<=a;b=1+ { printf ("X"); } printf ("\n"); } [/PHP] nur leider hab ich nun den kompletten überblick verloren was ich da gemacht habe und warum es so funktioniert. kann mir das evtl einer bitte so erklären das ich es verstehe?
-
danke, werde versuchen deinen rat zukünftig folge zu leisten nachdem das semikolon weg ist hab ich nun 8 reihen und in jede reihe sind zwei x, aber das habt ihr wohl schon anhand des codes erahnt was mich nun interessiert: wie und woher weiß ich in welcher schleife ich zeile und anzahl mache? for (initialisierung;logische abfrage;zähler erhöhen bzw erniedrigen) über google hab ich nun leider nichts erklärendes darüber gefunden