|
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 1int *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 = gccOBJS = main.o logical.oTARGETS = mainall: $(TARGETS)main: main.o logical.o $(CC) main.o logical.o -o mainmain.o: main.c $(CC) -c main.clogical.o: logical.c $(CC) -c logical.cclean: 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
|
|