zahlenfolge -> array
-
Hi
bin selber nicht drauf gekommen.
wie kann ich eine Zahlenfolge 13289367783217821783427676321
splitten und alle zahlen in ein array speichern.
also array[0]=1, array[1]=3, array[2]=2 usw.mein ziel ist es die grösste zahl in so einer zahlenfolge zu finden.
da dachte ich mir ich speichere alles zahlen einzeln in ein array und durchlaufe es mit einer schleife um die grösste zahl zu finden.
-
Du willst die einzelnen Ziffern splitten (gemäss deinem Beispiel) und
anschliesssend die Grösste über die Länge bestimmen.
-
int highestDigit( int value ) { int highest = 0; while( value ) { highest = value % 10 > highest ? value % 10 : highest; value /= 10; } return highest; }
wozu erst in ein array?
-
#include <stdio.h> int main( int argc, char** argv ) { int c; int a[512]; int ix = 0; int i; int h; printf( "zahl eingeben> " ); fflush( stdout ); while ( ( c = getchar() ) != EOF ) { if ( c == '\n' ) break; if ( c < '0' || c > '9' ) continue; if ( ix < 512 ) a[ix++] = c - '0'; } h = 0; for ( i=0; i < ix; ++i ) { if ( a[i] > h ) h = a[i]; } printf( "hoechste zahl = %d\n", h ); return 0; }
-
nagut das array kann ich mir sparen.
ich wusste nicht wie ich die einzelnen ziffern "ansprechen" sollte
-
@ Power Off
was bewirkt eigentlich das c - '0' ?
a[ix++] = c - '0';
-
das c-'0' bewirkt, das du ein eingegebenes char, z. b. "9" in einen int-wert wandelst!