|
Ez logikus
Írjon függvényt, amely paraméterként megkapja egy sztringeket tartalmazó kétdimenziós tömb
kezdőcímét, sorainak és oszlopainak számát, valamint egy sztringet! A függvény az eredeti
tömb módosítása nélkül hozzon létre egy új, egészeket tartalmazó egydimenziós tömböt,
amelynek annyi eleme van, ahány oszlopa az eredeti tömbnek volt! A függvény az új tömböt
attól függően töltse föl logikailag igaz vagy hamis értékekkel, hogy a paraméterként
megkapott sztring megtalálható-e az eredeti kétdimenziós tömb adott oszlopában, majd adja
vissza az új tömb kezdőcímét!
A függvény specifikációja
int *logical( char *[], int, int, char * );
Megjegyzés
A függvényt helyezze a logical.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
int *logical( char *[], int, int, char * );
#endif /* myheader.h */
letöltés szöveges állományként
main.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "myheader.h"
#define N 3 #define M 4 int main() { char *t[ N ][ M ] = { { "szaxofon", "szaxofon", "szaxofon", "szaxofon" }, { "szaxofon", "kakukktojas", "szaxofon", "szaxofon" }, { "szaxofon", "szaxofon", "szaxofon", "kakukktojas" } }; char str[ 100 ]; int i, j; int *p;
strcpy( str, "kakukktojas" ); printf( "%d %d *%s*\n\n", N, M, str ); 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 = logical( &t[ 0 ][ 0 ], N, M, str ); 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( "%d", p[ j ] ); } putchar( '\n' ); free( p ); return EXIT_SUCCESS; }
letöltés szöveges állományként
Makefile
CC = gcc OBJS = main.o logical.o TARGETS = main
all: $(TARGETS)
main: main.o logical.o $(CC) main.o logical.o -o main
main.o: main.c $(CC) -c main.c
logical.o: logical.c $(CC) -c logical.c
clean: rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
A fenti program kimenete
3 4 *kakukktojas*
*szaxofon* *szaxofon* *szaxofon* *szaxofon* *szaxofon* *kakukktojas* *szaxofon* *szaxofon* *szaxofon* *szaxofon* *szaxofon* *kakukktojas*
*szaxofon* *szaxofon* *szaxofon* *szaxofon* *szaxofon* *kakukktojas* *szaxofon* *szaxofon* *szaxofon* *szaxofon* *szaxofon* *kakukktojas*
0 1 0 1
letöltés szöveges állományként
|
|