DrToxic
Rear Admiral
- Registriert
- Juni 2008
- Beiträge
- 6.068
Hey,
ich bin gerade dabei, ein Programm zu erstellen, welches einen komplementären DNA-Strang zu einem eingegebenen Strang ausgibt.
An sich ist das einfach, aus A wird T, aus G wird C und umgekehrt.
Als ersten Versuch wollte ich Arrays mal außen vor lassen und nur einen einzelnen Buchstaben umwandeln lassen, hat soweit auch ganz gut geklappt, mit switch etc., ihr kennt den Kram.
Jetzt wollte ich halt nur eine DAU-Sicherheitsschleife bei der Eingabe einbauen, welche einen Error ausgibt, sobald man am Anfang was anderes als A, T, G oder C eingibt.
Vereinfacht gesagt, sowas hier - habe es zum Testen mal komplett miniaturisiert, um Fehler auszuschließen:
Sobald man was anderes als a eingibt, kommt halt die Fehlermeldung und er soll von vorn beginnen d.h. nochmal abfragen etc, bis er halt einen Wert hat, mit dem er weiterarbeiten kann (sprich: a).
Das Doofe ist jetzt nur, dass er bei einer falschen Eingabe die Schleife zwar von vorn beginnt, jedoch dabei den scanf-Befehl auslässt, dann die Schleife nochmal beginnt und dann erst abfragt.
Ich habe da echt keine Erklärung für
Das passiert aber nur bei chars. Wenn ich eingang als int definiere und eine Zahlenabfrage mache, klappt's seltsamerweise ohne Probleme.
Screen im Anhang
ich bin gerade dabei, ein Programm zu erstellen, welches einen komplementären DNA-Strang zu einem eingegebenen Strang ausgibt.
An sich ist das einfach, aus A wird T, aus G wird C und umgekehrt.
Als ersten Versuch wollte ich Arrays mal außen vor lassen und nur einen einzelnen Buchstaben umwandeln lassen, hat soweit auch ganz gut geklappt, mit switch etc., ihr kennt den Kram.
Jetzt wollte ich halt nur eine DAU-Sicherheitsschleife bei der Eingabe einbauen, welche einen Error ausgibt, sobald man am Anfang was anderes als A, T, G oder C eingibt.
Vereinfacht gesagt, sowas hier - habe es zum Testen mal komplett miniaturisiert, um Fehler auszuschließen:
Code:
#include <stdio.h>
void main (void){
char eingang;
do {
printf ("a eingeben:\n");
scanf("%c", &eingang);
if (eingang!='a'){
printf("error\n");
}
} while(eingang!='a');
printf("success!\n");
}
Das Doofe ist jetzt nur, dass er bei einer falschen Eingabe die Schleife zwar von vorn beginnt, jedoch dabei den scanf-Befehl auslässt, dann die Schleife nochmal beginnt und dann erst abfragt.
Ich habe da echt keine Erklärung für
Das passiert aber nur bei chars. Wenn ich eingang als int definiere und eine Zahlenabfrage mache, klappt's seltsamerweise ohne Probleme.
Screen im Anhang