|
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
#include <stdio.h>#include <stdlib.h>int main(){ int *rotate( int *, int, int ); for ( ; ; ) { int elements, rot, i, *t, *p; scanf( "%d %d", &rot, &elements ); if ( elements == 0 ) break; t = ( int * )malloc( elements * sizeof( int ) ); for ( i = 0; i < elements; ++i ) scanf( "%d", &t[ i ] ); p = rotate( t, elements, rot ); for ( i = 0; i < elements; ++i ) { if ( i > 0 ) putchar( ' ' ); printf( "%d", p[ i ] ); } putchar( '\n' ); free( p ); free( t ); } return EXIT_SUCCESS;}
letöltés szöveges állományként
Makefile
CC = gccOBJS = main.o rotate.oTARGETS = mainall: $(TARGETS)main: main.o rotate.o $(CC) main.o rotate.o -o mainmain.o: main.c $(CC) -c main.crotate.o: rotate.c $(CC) -c rotate.cclean: rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
Példa bemenet
0 3 1 2 31 3 1 2 32 3 1 2 33 3 1 2 34 3 1 2 35 3 1 2 30 0
letöltés szöveges állományként
A példa bemenethez tartozó kimenet
1 2 33 1 22 3 11 2 33 1 22 3 1
letöltés szöveges állományként
|
|