2. ANSI-C-­Aufgabe: Rechnen im Integer-­Bereich und Ein- und Ausgabe an der Konsole

Letztes Update: Dienstag, 16. August 2016 - 16:41 Uhr

Original-­Aufgaben­stellung:

Integer-Operationen
Zum Aufwärmen wollen wir uns mit Berechnungen im Ganzzahlbereich und grundlegenden Konstrukten wie if und for beschäftigen.

Anforderungen
Dazu schreiben wir ein Programm, das das Minimum und das Maximum von beliebigen Eingabewerten berechnet, sowie die Spanne dieser Werte. Die Eingabewerte werden dem Programm als Kommandozeilenparameter angegeben, so daß Eingaben zur Laufzeit entfallen. Es dürfen beliebige ganze Zahlen eingegeben werden, also auch negative Zahlen und die null.

Schreibt zur Berechnung des Minimums und des Maximums zwei Funktionen minimum und maximum. Diese Funktionen sollen als Parameter die Eingabewerte erwarten und als Ergebnis einen Integer-Wert liefern. Die Wertespanne errechnet sich aus Maximum - Minimum.

Werden keine Werte angegeben, so soll das Programm eine Fehlermeldung ausgeben und sich mit dem Returncode 1 beenden. Falsche Eingaben sollen zur Vereinfachung der Aufgabe in dieser Übung erstmal ignoriert werden.

Hinweise

  • Ermitteln der Kommandozeilenparameter
    Die Kommandozeilenparameter werden jedem C-Programm in dem Array argv übergeben. Bei argv handelt es sich um einen Zeiger auf einen Zeiger auf einen Character oder kurz gesagt um ein String-Array. Dieses Array hat argc Elemente. Das erste Element ist argv[0] und das letzte argv[argc-1]. Das erste Element beinhaltet grundsätzlich den Dateinamen des Programms. Ein Programm, das mit 1 Kommandozeilenparameter ausgerufen wird, hat demnach also 2 Elemente in dem Array.

  • Umwandeln eines Strings in einen Integer-Wert
    Da die Kommandozeilenparameter als Strings übergeben werden, müssen wir sie in Integer umwandeln, bevor wir mit ihnen rechnen können. Dazu gibt es die Funktion sscanf. Diese Funktion arbeitet ähnlich wie printf und erwartet ebenfalls einen Format-String gefolgt von einer Liste von Variablen entsprechend dem Format-String.
    NAME
          sscanf
    
    SYNOPSIS
          #include <stdio.h>
          int sscanf(const char *str, const char *format, ...);
    

  • Formatierung der Ausgabe
    Formatiert eure Ausgabe bitte entsprechend diesem Beispiel:
    	% ./ueb02 102 -90 6 33 -20 -95 88
            Minimum: -95
            Maximum: 102
            Wertespanne: 197
    

 

Download Beispiel-Lösungsvorschlag, Quelltext inkl. Projektdateien für VC6 (ZIP-Archiv, 38 KB)

 

Zur Aufgaben-Übersicht

 

Gefällt dir die C Übungsaufgabe? Schreibe doch einen Kommentar...

 

Neuen Kommentar abgeben

gsaew