Programozó versenyek

Magas szintű programozási nyelvek 1, 2014. április 29., K18 ZH

2014. április 29. 18:05 – 2014. április 29. 19:50

Forgatás

Írjon függvényt, amely paraméterként megkapja egy egész számokat tartalmazó tömb kezdőcímét és a tömb elemeinek számát, valamint egy n nemnegatív egész számot! A függvény – az eredeti tömb módosítása nélkül – hozzon létre egy új, egész számokat tartalmazó tömböt, amely az eredeti tömbre alkalmazott n-szeri jobbra forgatás eredményét tartalmazza! A függvény visszatérési értéke az új tömb kezdőcíme legyen!

A függvény specifikációja

int *rotate( int *, int, int );

Megjegyzés

A függvényt helyezze a rotate.c nevű állományba, és ezt az állományt küldje be megoldásként a kiértékelő rendszernek! Megoldását a példa bemenetben szereplő adatokkal az alábbi két állomány segítségével tesztelheti. Megoldásának kiértékelését a tesztelő rendszer nem feltétlenül ezeknek az állományoknak a felhasználásával végzi!

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.   int *rotate( int *, int, int );
  6.   for ( ; ; )
  7.   {
  8.     int elements, rot, i, *t, *p;
  9.     scanf( "%d %d", &rot, &elements );
  10.     if ( elements == 0 )
  11.       break;
  12.     t = ( int * )malloc( elements * sizeof( int ) );
  13.     for ( i = 0; i < elements; ++i )
  14.       scanf( "%d", &t[ i ] );
  15.     p = rotate( t, elements, rot );
  16.     for ( i = 0; i < elements; ++i )
  17.     {
  18.       if ( i > 0 )
  19.         putchar( ' ' );
  20.       printf( "%d", p[ i ] );
  21.     }
  22.     putchar( '\n' );
  23.     free( p );
  24.     free( t );
  25.   }
  26.   return EXIT_SUCCESS;
  27. }
letöltés szöveges állományként

Makefile

  1. CC = gcc
  2. OBJS = main.o rotate.o
  3. TARGETS = main
  4. all: $(TARGETS)
  5. main: main.o rotate.o
  6. $(CC) main.o rotate.o -o main
  7. main.o: main.c
  8. $(CC) -c main.c
  9. rotate.o: rotate.c
  10. $(CC) -c rotate.c
  11. clean:
  12. rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként

Példa bemenet

  1. 0 3 1 2 3
  2. 1 3 1 2 3
  3. 2 3 1 2 3
  4. 3 3 1 2 3
  5. 4 3 1 2 3
  6. 5 3 1 2 3
  7. 0 0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. 1 2 3
  2. 3 1 2
  3. 2 3 1
  4. 1 2 3
  5. 3 1 2
  6. 2 3 1
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.