ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
2224
2224
EMPFEHLEN
-
23.05.03 19:04 #1
Hallo Leute!
Habe ein Problem mit einer Aufgabe die ich lösen muss für die Schule..
Es geht um die Berechnung des Querparitätsbits wo die Ausgabe eine Dualzahl sein soll. Eigentlich kein Problem, nur sollen wir es mit statischen Feldern lösen, aber ich würde gerne die größe des Feldes je nach größe der Dualzahl anpassen. Daher müsste man wohl *wie ich annehme* dynamische Felder benutzen..
Hier erstmal der Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <windows.h> void querbit(int dezimalzahl) { int quersumme=0, rest=0, i=0, dezimalrechnen=0; dezimalrechnen=dezimalzahl; for(dezimalrechnen;dezimalzahl>=0;i=i+1) { dezimalrechnen=dezimalrechnen/2; } int dualzahl[i]; do { dezimalzahl=dezimalzahl/2; dualzahl[i]=dezimalzahl; i=i+1; } while(dezimalzahl!=0); printf("Die Dualzahl lautet: "); for(i;i>=0;i=i-1) { printf("%d",dualzahl[i]); } } void main() { int dezimaleingabe=0; char nochmal='n', auswahl=0; printf("Querparitaetsbitberechnung"); Sleep(4000); system("cls"); do { printf("Bitte geben Sie die positive Dezimalzahl ein: "); scanf("%d",&dezimaleingabe); fflush(stdin); system("cls"); querbit(dezimaleingabe); } while(nochmal=='j' || nochmal=='J'); }
Ist der komplette Code *vorsichtshalber*.. An der Stelle wo ich das Feld deklariere kommen die Fehler.. Wär echt gut wenn mir jemand erklärt mit Beispiel wie ich daraus ein dynamisches Feld machen kann um das zu erreichen was ich oben beschrieben habe.
PS: Benutze Visual C++ 6.0 wie in der Schule ...
-
Unter C++ gibt es keine variablen Arrays sondern nur sollche, Deren Größe zur Compilezeit schon fest steht. Das heißt, Du muss wohl oder übel folgendes machen:
Code :1 2 3
int *dualzahl; dualzahl = new int [i];
Sonst bleibt alles gleich.
MfG
Tobias
-
24.05.03 21:02 #3
danke
ich probier das gleich mal aus
-
25.05.03 14:15 #4
- Registriert seit
- Apr 2001
- Ort
- Hamburg
- Beiträge
- 1.309
Du kannst dir doch zur Laufzeit soviel Speicher auf dem Heap reservieren, wie er hergibt. Das was du meinst, bezieht sich auf den Stack.Deren Größe zur Compilezeit schon fest steht.--
GNU/Linux - Weil man echte Freunde nicht kaufen kann
-
Arrays liegen aber immer auf dem Stack. Dasher muss der Speicher immer vom Heap geholt werden (wie ich gezeigt habe).Original geschrieben von Caminus
Du kannst dir doch zur Laufzeit soviel Speicher auf dem Heap reservieren, wie er hergibt. Das was du meinst, bezieht sich auf den Stack.
MfG
Tobias
-
25.05.03 14:31 #6
- Registriert seit
- Apr 2001
- Ort
- Hamburg
- Beiträge
- 1.309
Mit
Erstellst du dir einen Integer Pointer - liegt auf dem Stack - welcher auf ein Integer-Array auf dem Heap zeigt.Code :1
Int * Pointer = new int[500];
--
GNU/Linux - Weil man echte Freunde nicht kaufen kann
-
25.05.03 16:36 #7
das programm hängt sich immer bei der rechnung auf..
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <windows.h> void querbit(int dezimalzahl) { int rest=0, i=0; int *dualzahl; dualzahl = new int [i]; for(dezimalzahl;dezimalzahl!=0;i++) { rest=dezimalzahl/2; dualzahl[i]=rest; } for(i;i>=0;i=i-1) { printf("%d",dualzahl[i]); } } void main() { int dezimaleingabe=0; char nochmal='n', auswahl=0; printf("Querparitaetsbitberechnung"); Sleep(3000); system("cls"); do { printf("Bitte geben Sie die positive Dezimalzahl ein: "); scanf("%d",&dezimaleingabe); fflush(stdin); system("cls"); querbit(dezimaleingabe); } while(nochmal=='j' || nochmal=='J'); }
-
25.05.03 19:54 #8
hab das problem selber gelöst *g*
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
#include <stdio.h> #include <conio.h> #include <stdlib.h> void querbit(int dezimalzahl) { int quersumme=0, rest=0, i=0; int dual[100]={0}; do { rest=dezimalzahl%2; dezimalzahl=dezimalzahl/2; if(rest==0) { dual[i]=rest; } else { rest=1; dual[i]=rest; } i=i+1; } while(dezimalzahl!=0); printf("Die Dualzahl lautet "); for(i;i>=0;i=i-1) { printf("%d",dual[i]); } printf("\n\nWeiter "); getch(); fflush(stdin); system("cls"); } void main() { int dezimal=0; char nochmal, auswahl=0, bit=0; printf("Querparitaetsbitberechnung"); printf("\nWeiter "); getch(); fflush(stdin); system("cls"); do { printf("Bitte geben Sie die Dezimalzahl ein: "); scanf("%d",&dezimal); fflush(stdin); system("cls"); querbit(dezimal); printf("Wollen Sie eine weitere Schaltung berechnen?\n"); printf("[J] / [N]: "); scanf("%c",&nochmal); fflush(stdin); system("cls"); } while(nochmal=='j' || nochmal=='J'); }
nochmals danke an alle! bin auf den Fehler selber noch gekommen
und zwar war
das problem!Code :1
int dual[100]={0};
Ähnliche Themen
-
dynamische Felder, Felder mit Daten belegen
Von jenny1106 im Forum C/C++Antworten: 8Letzter Beitrag: 08.03.10, 10:42 -
Dynamische Felder Kopiern
Von XeoX im Forum C/C++Antworten: 3Letzter Beitrag: 27.05.08, 11:30 -
Dynamische DropDown Felder
Von Kranetierli im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 17.09.07, 13:51 -
Split und dynamische Option-Felder
Von messmar im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 15.06.06, 11:47 -
[VBS] dynamische Formular-Felder ausfüllen
Von MiLa im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 18.03.05, 19:14





Zitieren
Login






