"We are back" « oc.at

Hilfe bei proggi in C. Bitte schnell!

Sibs 06.03.2003 - 16:08 947 22
Posts

Luki

UNDER CONSTRUCTION
Avatar
Registered: Feb 2002
Location: 127.0.0.1
Posts: 2347
erster tipp zur fehlersuche: nimm mal gescheite var-namen, des haben wir als erstes gelernt

@phobos: er gibt jedes zeichen des alphabets bei vorkommen nur einmal aus

cbs2k1

Big d00d
Avatar
Registered: Sep 2002
Location: AT
Posts: 290
naja, dann werd i wohl nu a bissal umadumpfuschn müssn.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
I) der übermäßige gebrauch von wörtern wie "Dringend", "schnell" führte zur infaltionären abwertung dieser begriffe - sie sind im moment praktisch nichts wert.

II)
Zitat von Sibs
der Teil macht mich wahnsinnig:
Code:
for(x=0;x<=y;x++)
		{
			if(z[i]==v[x])
			{
				break;
			}
			else{
				v[g]=z[i];
				g++;
			}
		}
zu recht, würde ich meinen. :)

als einschub nur eine kurze beschreibung deiner variablen:
Code:
	// z inputstring
	// v outputstring
	// y outputlen
	// i index für z (inputstr)
	// x untersuchungs index für v (outputstr)
	// g last-element-index für v (ausgabe)
	// maxwert max-laenge
gewöhne dir bitte sprechende variablennamen an, es erleichtert die sache auch für dich. für indezes, vorallem bei verschachtelten schleifen, verwendet man gerne ein system, zb i,j,k oder x,y,z.
deine fehler im programm sind:
- maxwert hat einen fixen wert (!?)
- hat ein array n elemente, so läuft die schleife für gewöhnlich von 0 bis n-1 also [b]for(i=0;i<n;i++) [b] und nicht for(i=0;i<=n;i++)
- die innere schleife (welche überprüft ob das untersuchte zeichen schon im ergebnis-feld vorkommt) sollte von 0 bis g-1 und nicht von 0 bis y (da trifft er auf einen haufen uninitialisierter werte)
- ob ein zeichen in in den ergebnis-string aufgenommen werden kann, steht erst fest, nachdem du alle zeichen von der inneren schleife untersucht hast. dh: du kannst erst nach der schleife sicher sein, daß der buchstabe nicht vorkommt - so wie du es machst, fügt er buchstaben unnötig oft und fälschlicherweise an v an.
- du solltest in der äußeren schleife darauf achten, daß du nicht weiter untersuchst als das ende vom eingabestring - es könnte ja durchaus vorkommen, daß der eingabestring nicht genügend neue buchstaben enthält um y zu erreichen (zb weil z aus vielen/lauter gleichen buchstaben besteht)

das es sich offenbar um ein schulbeispiel handelt, bin ich so gemein und halte die fertige version zurück - sonst machst beim nächsten beispiel die selben fehler und die übung hat ihr ziel verfehlt.

cbs2k1

Big d00d
Avatar
Registered: Sep 2002
Location: AT
Posts: 290
Danke Atrox!
Habs zwar erst heute gesehen, aber egal.
Auf das "erst vergleichen, dann reinschreiben" bin ich gestern noch selbst draufgekommen, funktioniert hats trotzdem nicht ganz:bash: .
Ich werds ma nochmal zu gemüte ziehen müssen.

P.S:Falls es wen interessiert, von 16 Leuten in der Klasse hatte es einer richtig, bzw. 2 mit a paar Fehlern (einschließlich mich:) )

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
du hast dich ein bishen spät darum gekümmert :(
btw.. was ist das für eine schule ?

Vivo

Dreamworker
Avatar
Registered: May 2002
Location: Tal der Könige
Posts: 1478
Zitat von atrox
du hast dich ein bishen spät darum gekümmert :(
btw.. was ist das für eine schule ?
Von der Einteilung könnte es doch glatt ein HTLer sein ...
Alles in der letzten Minute (wenns geht noch in der früh) ... das r0ckt !!

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
wills ja nicht zugeben, aber das war in meiner htl-zeit manchmal ganz ähnlich. probleme die im letzten moment auftreten, können einem aber dann allzu leicht das genick brechen :(

cbs2k1

Big d00d
Avatar
Registered: Sep 2002
Location: AT
Posts: 290
Zitat von Vivo
Von der Einteilung könnte es doch glatt ein HTLer sein ...

right :D
Dachte mir die ganze Woche, dass es e ned so schwer sein könnte (Prinzip schon durchgedacht) und dann is da Stress kumma (******* Chemietest:mad: )

edit: peinlicher Fehler :(
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz