|
Leülhetsz, fiam: egyes!
Írjon függvényt, amely paraméterként megkapja egy egészeket tartalmazó kvadratikus mátrix
(négyzet alakú kétdimenziós tömb) kezdőcímét, valamint egy pozitív n értéket, amely
a tömb oszlopainak számát jelöli! A mátrix az első n2 pozitív egész
számot tartalmazza. A függvény az eredeti tömb megváltoztatása nélkül hozzon létre egy új,
egészeket tartalmazó egydimenziós tömböt, töltse föl azt az eredeti mátrix azon sorának az
elemeivel, amelyben az 1-es érték szerepel, és adja vissza e tömb kezdőcímét!
A függvény specifikációja
int *sitdown( int *, int );
Megjegyzés
A függvényt helyezze a sitdown.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 *sitdown( 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 5 int main() { int t[ N ][ N ] = { { 2, 5, 24, 15, 3 }, { 17, 10, 6, 18, 14 }, { 19, 8, 20, 22, 16 }, { 12, 7, 1, 4, 25 }, { 11, 13, 21, 9, 23 } }; int i, j, *p;
printf( "%d\n\n", N ); for ( i = 0; i < N; ++i ) { for ( j = 0; j < N; ++j ) { if ( j > 0 ) putchar( ' ' ); printf( "%d", t[ i ][ j ] ); } putchar( '\n' ); } putchar( '\n' ); p = sitdown( &t[ 0 ][ 0 ], N ); for ( i = 0; i < N; ++i ) { for ( j = 0; j < N; ++j ) { if ( j > 0 ) putchar( ' ' ); printf( "%d", t[ i ][ j ] ); } putchar( '\n' ); } putchar( '\n' ); for ( i = 0; i < N; ++i ) { if ( i > 0 ) putchar( ' ' ); printf( "%d", p[ i ] ); } putchar( '\n' ); free( p ); return EXIT_SUCCESS; }
letöltés szöveges állományként
Makefile
CC = gcc OBJS = main.o sitdown.o TARGETS = main
all: $(TARGETS)
main: main.o sitdown.o $(CC) main.o sitdown.o -o main
main.o: main.c $(CC) -c main.c
sitdown.o: sitdown.c $(CC) -c sitdown.c
clean: rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
A fenti program kimenete
5
2 5 24 15 3 17 10 6 18 14 19 8 20 22 16 12 7 1 4 25 11 13 21 9 23
2 5 24 15 3 17 10 6 18 14 19 8 20 22 16 12 7 1 4 25 11 13 21 9 23
12 7 1 4 25
letöltés szöveges állományként
|
|