Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Mój pierwszy program! */
- #include <stdio.h>
- #include <ctype.h>
- #define STRING 512
- #define MAX 10
- /* Funkcja nr 5: skipwhite()
- * Pomija biaîe znaki.
- * Zwraca pierwszy niebiaîy znak.
- * Wskaúnik na ciâg wskazuje na kolejny znak.
- */
- int skipwhite( char **p )
- {
- char *s = *p;
- char c;
- while( ( c = *s++ ) != '\0' && ( c == ' ' || c == '\t' || c == '\n' ) )
- ;
- /* c: Zawiera pierwszy niebiaîy znak lub \0 */
- /* s: Wskazuje na nastëpny znak */
- *p = s;
- }
- /* Funkcja nr 4: getint()
- * Pobiera nastëpnâ liczbë z ciâgu tekstowego.
- * s: adres wskaúnika na ciâg
- * n: adres liczby caîkowitej
- * wynik: 1 = dobrze, 0 = koniec ciâgu
- */
- int getint( char **p, int *n )
- {
- char *s;
- char c;
- int m;
- int sign = 1;
- if( ( c = skipwhite( p ) ) == '\0' )
- return( 0 );
- s = *p;
- if( c == '-' ) {
- sign = -1;
- c = *s++;
- }
- m = 0;
- while( isdigit( c ) ) {
- m = ( 10 * m ) + ( c - '0' );
- c = *s++;
- }
- m *= sign;
- *n = m;
- *p = s;
- return( 1 );
- }
- /* Funkcja nr 1: getints()
- * Przeksztaîca ciâg tekstowy w ciâg liczb calkowitych.
- * a: ciâg liczb
- * n: rozmiar tablicy
- * s: ciâg tekstowy
- * wynik: ile liczb przeksztaîcono.
- */
- int getints( int *a, int n, char *s )
- {
- int i;
- i = 0;
- while( i < n && getint( &s, &a[ i ] ) == 1 ) {
- /* Przechodzimy do nast. elementu */
- i++;
- }
- return( i );
- }
- /* Funkcja nr 2: calcsum()
- * Liczy sumë ciâgu liczb caîkowitych
- * a: ciâg liczb
- * n: rozmiar tablicy
- * wynik: suma
- */
- int calcsum( int *a, int n )
- {
- int i, sum;
- i = 0;
- sum = 0;
- while( i < n )
- /* Dodajemy element ciâgu */
- sum += a[ i++ ];
- return( sum );
- }
- /* Funkcja nr 3: main()
- * Liczy i wyôwietla sumë ciâgu wprowadzonego przez uűytkownika
- */
- int main( void )
- {
- char s[ STRING ];
- int a[ MAX ];
- int n, sum;
- if( fgets( s, STRING, stdin )
- &&( n = getints( a, MAX, s ) ) > 0 ) {
- sum = calcsum( a, n );
- printf( "Suma = %d\n", sum );
- } else
- printf( "Blad odczytu.\n" );
- return( 0 );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement