Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Programm das Binärzahlen überprüft

Hi Leute,

ich soll zur Übung ein Programm schreiben das überprüft ob zeilenweise eingegebene Binärzahlen wirklich dem Binärformat entsprechen. Führende Nullen zB.0101 sind nicht erlaubt.

Bsp.: Eingabe
      10010
      98512
      Ausgabe:
      true
      false

Ich habe schon hin und her probiert. Ich weis auch das ich auf jeden fall einen Scanner brauche aber ich komme einfach nicht zu einer Lösung. Wäre cool wenn mir jemand helfen könnte.


Antworten zu Programm das Binärzahlen überprüft:

Hi HW,

 nur erster Entwurf

ohne Anspruch auf


#include <stdio.h>
#include <string.h>

#define INPUTSTRINGLAENGE 40

int main(int argc, char *argv[]) {
    return 0;
}

Na, das war zu früh. Wo bekommt man denn hier die Vorschau für eine Antwort?

Irgendwie kann ich die Beitragsvorschau nicht mehr finden. Für mich unerwartet kommt stattdessen eine Meldung von Cloudflare "Please complete the security check to access computerhilfen.de" und nach Markieren aller Bilder mit 'cars' oder 'crosswalks' werde ich auf "Programmieren Forum & Hilfe | Neues Thema starten" umgeleitet.


Wie ich also schon schrieb, soll das hier nur ein erster Entwurf sein, ohne Anspruch auf Vollständigkeit.


#include <stdio.h>
#include <string.h>

#define INPUTSTRINGLAENGE 40 // Diesen Wert so festlegen, dass er für die zu erwartende Länge ausreicht.

eingeben(char inputstring[INPUTSTRINGLAENGE]) {
    gets(inputstring);
}

abtasten(char inputstring[INPUTSTRINGLAENGE], int z, int isBin) {
    while (inputstring[z]!='\0' && isBin!=0) {
        if (inputstring[z]=='0' || inputstring[z]=='1') {
        }
        else {isBin=0;}
        z++;
    }
}

int main(int argc, char *argv[]) {
    int ziffernummer=0, istBinaer=1;
    char eingabestring[INPUTSTRINGLAENGE];
    strcpy(eingabestring,"OK");
    printf("Wird als erstes Zeichen ein 'q' eingegeben, führt dies zum Programmende.\n");

    while (eingabestring[ziffernummer]!='q' && istBinaer!=0) {
        printf("Bitte Eingabe machen:\n");
        eingeben(eingabestring); ziffernummer=0;

        if (eingabestring[ziffernummer]=='1') {  // Diese Abfrage wird nur für das erste Zeichen
            istBinaer=1;                         // durchlaufen. Also einmal pro Eingabe.
            ziffernummer++;
            abtasten(eingabestring, ziffernummer, istBinaer);
        }

        else {istBinaer=0;}

        if(istBinaer==0) { printf("false: Eingabe kann keine Binärzahl sein.\n\n\n"); istBinaer=1;}
        else {printf("true: Eingabe %s ist eine Binärzahl.\n\n\n",eingabestring);}
    }
    printf("Programmende.\n");
    return 0;
}


Die Funktion abtasten(char, int, int) müsste in einem ganz entfernten Sinn dem entsprechen, was du als einen Scanner bezeichnest. Eigentlich kann man die auch direkt in main() unterbringen, weil abtasten() nur einmal pro Eingabe aufgerufen wird.


Wenn jemand Fehler findet, diese bitte unbedingt hier melden.

@admin:
Jetzt nach über fünf Anläufen hat der Eintrag geklappt und ich wurde nicht auf "Programmieren Forum & Hilfe | Neues Thema starten" weitergeleitet.


« Matrizenmultiplikation forschleifenSeitenzahlen mit Javascript »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Eingabefelder
Als Eingabefelder werden in einem Programm oder in Online-Formularen die Stellen bezeichnet, an denen Informationen eingetippt werden können. Die Beschriftung neben ...