Hallo,
lerne zur Zeit ein bisschen c und habe mich jetzt mal hier registriert weil ich hier oft nützliche Tips gefunden hab die mir sehr geholfen haben.
Normal mache ich so etwas ja eigentlich nicht aber mein Programm welches ich progrmieren will funktioniert einfach nicht und ich komme einfach nicht darauf was ich falsch mache. Deswegen wollte ich jetzt einmal fragen ob mir hier vielleicht wer helfen kann.
Mein Programm soll einfach eine zufällige kombination von 0 und 1 generieren und dann immer jeweils zwei stellen untersuchen und diese dann zu ersetzen. Aus zwei gleichen Ziffern soll eine 0 gemacht werden aus zwei unterschiedlichen eine 1. Das ganze sieht dann ungefähr so aus.
10010111
1110
01
1
Hier der Quellcode von meinem Pogramm
#include
#include
#include
int main(void)
{
int n, i, zahl[1000];
printf("Länge der 0/1-Folge (max. 1000): ");
scanf("%d", &n);
srand(time(NULL));
for(i = 0; i 1){
n = ordnen(n, zahl);
printf("\n");
}
return 0;
}
int ordnen(int j, int za[])
{
int m, i, t;
t = j;
for(m = 0, i = 0; i
Wäre super wenn mir jemand weiterhelfen könnte.
Schon mal im Vorraus vielen Dank
Gruß Benny
Kristallkugel benötigt
Hi,
mein Programm welches ich progrmieren will funktioniert einfach nicht
Geht’s vielleicht etwas genauer? Was passiert, wenn Du das Programm laufen lässt? Absturz? Fehlermeldung? Falsche Ausgaben? Welche? - Mein Hellseh-Kurs an der VHS beginnt nämlich erst nächste Woche.
Trotzdem ein Tipp.
In der Funktion ordnen() kriegst Du Probleme mit den beiden 'if’s.
Im ersten Schleifendurchlauf ist i == m, und wenn das zahl[] Array mit „11…“ beginnt, macht das erste if daraus „01…“ und das zweite wieder „11…“. Außerdem wird j zweimal dekrementiert. Also nicht zwei ifs nehmen, sondern if/else.
int ordnen(int j, int za[])
{
int m, i, t;
t = j;
for(m = 0, i = 0; i
Wäre super wenn mir jemand weiterhelfen könnte.
Schon mal im Vorraus vielen Dank
Gruß Benny
Gruß
KHK
Hallo,
lerne zur Zeit ein bisschen c und habe mich jetzt mal hier
registriert weil ich hier oft nützliche Tips gefunden hab die
mir sehr geholfen haben.
OK
Normal mache ich so etwas ja eigentlich nicht aber mein
Programm welches ich progrmieren will funktioniert einfach
nicht und ich komme einfach nicht darauf was ich falsch mache.
Deswegen wollte ich jetzt einmal fragen ob mir hier vielleicht
wer helfen kann.
Mal schauen.
Mein Programm soll einfach eine zufällige kombination von 0
und 1 generieren und dann immer jeweils zwei stellen
untersuchen und diese dann zu ersetzen. Aus zwei gleichen
Ziffern soll eine 0 gemacht werden aus zwei unterschiedlichen
eine 1.
Das nennt man XOR (exlusives oder), in C mit ‚^‘ gekennzeichnet.
Hier der Quellcode von meinem Pogramm
…
Wäre super wenn mir jemand weiterhelfen könnte.
Hmm, die Ordnen-Funktion kann so nicht gehen,
da die Indizierung des Feldes ‚zahl‘ nach dem
ersten Durchlauf nicht mehr stimmt.
Ich habs mal minimal verändert:
#include
#include
#include
int ordnen(int a[], int n);
void ausgeben(int a[], int n);
#define MAXZAHL 1000
int main(void)
{
char buffer[128];
int i, n, zahl[MAXZAHL];
srand(time(NULL));
printf("Laenge der 0/1-Folge (max. %d): ", MAXZAHL);
fgets(buffer, sizeof(buffer), stdin);
sscanf(buffer, "%d", &n);
if(n \> MAXZAHL) n = MAXZAHL; /\* Grenze beachten \*/
if(n & 1) n &= ~1; /\* Geradzahligkeit beachten \*/
/\* Reihe erzeugen \*/
for(i=0; iRAND\_MAX/2-1;\*/
/\* und anzeigen \*/
ausgeben(zahl, n);
/\* Reduktion durchfuehren \*/
while(n \> 1) {
n = ordnen(zahl, n);
ausgeben(zahl, n);
}
return 0;
}
int ordnen(int zahl[], int n)
{
int i, j;
for(i=0,j=0; j
Grüße
CMБ
Hallo,
hab jetzt mal meine beiden „if“ anweißungen durch eine „if… else“ Anweißung ersetzt. Jetzt funktioniert es so weit bis auf wenn ich jetzt z.b.
die Zahlen
010 habe möchte ich dass er mir die null einfach mit
runter nimmt weil er ja keine weiter Zahl hat. Sprich dann
10 ausgibt. Das ist aber leider nicht immer der Fall. Ich weiß leider auch nicht wie des gehen soll weil ich leider auch nicht weiß was der Compiler macht wenn der eine Arraywert nicht definiert ist. Tuh mich gerade auch weng schwer mein Problem zu beschreiben :-/
Weiß nicht hoff jemand versteht mich 
Gruß Benny