
Ich habe auch mal wieder ein Problem ...
Grundsätzlich "lauffähig" ist mein Programm - aber isdigit() trifft Entscheidungen, die für mein Verständnis unlogisch sind.
Es soll gemäss Gauss'scher Summenformel die Summe aller natürlichen Zahlen bis zur ( per Kommandozeilenparameter übergebenen ) Zahl bestimmt werden.
Quellcode:
Code: Alles auswählen
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int main( int argc, char* argv[] )
{
if( argc != 2 ) // Wächter
{
printf( "Falsche Anzahl von Argumenten\n" );
return 0;
}
int zahl = atoi( argv[1] );
if (isdigit(zahl))
{
printf( "Ergebnis: %d\n", zahl * (zahl + 1) / 2);
}
else
{
printf( "FEHLER!\n" );
}
return 0;
}
Bildschirmausgaben vom Experimentieren mit diesem Progrämmchen :

Was läuft hier falsch?