|
Az elsők
Írjon függvényt, amely paraméterként megkapja egy sztringeket tartalmazó kétdimenziós tömb
kezdőcímét, valamint sorainak és oszlopainak számát! A függvény az eredeti tömb elemeinek
módosítása nélkül hozzon létre egy új, sztringeket (karaktermutatókat) tartalmazó tömböt,
amelynek elemei az eredeti tömb oszlopainak lexikografikusan legkisebb (ábécérendben legelső)
elemeit tartalmazzák, és adja vissza e tömb kezdőcímét!
A függvény specifikációja
char **lexifirst( char *[], int, int );
Megjegyzés
A függvényt helyezze a lexifirst.c nevű állományba, és ezt az állományt küldje
be megoldásként a kiértékelő rendszernek! Megoldását az
alábbi három á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!
myheader.h
#ifndef _MYHEADER_H #define _MYHEADER_H 1
char **lexifirst( char *[], int, int );
#endif /* myheader.h */
letöltés szöveges állományként
main.c
#include <stdio.h> #include <stdlib.h> #include "myheader.h"
#define N 3 #define M 4 int main() { char *t[ N ][ M ] = { { "alma", "dio", "korte", "szilva" }, { "eper", "cseresznye", "banan", "narancs" }, { "mandarin", "szolo", "ribizli", "malna" } }; int i, j; char **p;
printf( "%d %d\n\n", N, M ); for ( i = 0; i < N; ++i ) { for ( j = 0; j < M; ++j ) { if ( j > 0 ) putchar( ' ' ); printf( "*%s*", t[ i ][ j ] ); } putchar( '\n' ); } putchar( '\n' ); p = lexifirst( &t[ 0 ][ 0 ], N, M ); for ( i = 0; i < N; ++i ) { for ( j = 0; j < M; ++j ) { if ( j > 0 ) putchar( ' ' ); printf( "*%s*", t[ i ][ j ] ); } putchar( '\n' ); } putchar( '\n' ); for ( j = 0; j < M; ++j ) { if ( j > 0 ) putchar( ' ' ); printf( "*%s*", p[ j ] ); } putchar( '\n' ); free( p ); return EXIT_SUCCESS; }
letöltés szöveges állományként
Makefile
CC = gcc OBJS = main.o lexifirst.o TARGETS = main
all: $(TARGETS)
main: main.o lexifirst.o $(CC) main.o lexifirst.o -o main
main.o: main.c $(CC) -c main.c
lexifirst.o: lexifirst.c $(CC) -c lexifirst.c
clean: rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
A fenti program kimenete
3 4
*alma* *dio* *korte* *szilva* *eper* *cseresznye* *banan* *narancs* *mandarin* *szolo* *ribizli* *malna*
*alma* *dio* *korte* *szilva* *eper* *cseresznye* *banan* *narancs* *mandarin* *szolo* *ribizli* *malna*
*alma* *cseresznye* *banan* *malna*
letöltés szöveges állományként
|
|