Programozó versenyek

Magas szintű programozási nyelvek 1, 2014. május 21., Sz16 ZH

2014. május 21. 16:05 – 2014. május 21. 17:50

Az utolsó mohikán

Írjon függvényt, amely paraméterként megkapja egy különböző 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 módosítása nélkül hozzon létre egy új, kételemű, egészeket tartalmazó tömböt, töltse fel azt az eredeti tömb lexikografikusan legnagyobb (ábécérendben legutolsó) elemének sor- és oszlopindexével, majd adja vissza e tömb kezdőcímét!

A függvény specifikációja

int *mohican( char *[], int, int );

Megjegyzés

A függvényt helyezze a mohican.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

  1. #ifndef _MYHEADER_H
  2. #define _MYHEADER_H 1
  3. int *mohican( char *[], int, int );
  4. #endif /* myheader.h */
letöltés szöveges állományként

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "myheader.h"
  4. #define N 3
  5. #define M 4
  6.  
  7. int main()
  8. {
  9.   char *t[ N ][ M ] =
  10.     { { "alma",     "dio",        "korte",   "szilva" },
  11.       { "eper",     "cseresznye", "banan",   "narancs" },
  12.       { "mandarin", "szolo",      "ribizli", "malna" } };
  13.   int i, j;
  14.   int *p;
  15.   printf( "%d %d\n\n", N, M );
  16.   for ( i = 0; i < N; ++i )
  17.   {
  18.     for ( j = 0; j < M; ++j )
  19.     {
  20.       if ( j > 0 )
  21.         putchar( ' ' );
  22.       printf( "*%s*", t[ i ][ j ] );
  23.     }
  24.     putchar( '\n' );
  25.   }
  26.   putchar( '\n' );
  27.   p = mohican( &t[ 0 ][ 0 ], N, M );
  28.   for ( i = 0; i < N; ++i )
  29.   {
  30.     for ( j = 0; j < M; ++j )
  31.     {
  32.       if ( j > 0 )
  33.         putchar( ' ' );
  34.       printf( "*%s*", t[ i ][ j ] );
  35.     }
  36.     putchar( '\n' );
  37.   }
  38.   putchar( '\n' );
  39.   printf( "%d %d\n", p[ 0 ], p[ 1 ] );
  40.   free( p );
  41.   return EXIT_SUCCESS;
  42. }
letöltés szöveges állományként

Makefile

  1. CC = gcc
  2. OBJS = main.o mohican.o
  3. TARGETS = main
  4. all: $(TARGETS)
  5. main: main.o mohican.o
  6. $(CC) main.o mohican.o -o main
  7. main.o: main.c
  8. $(CC) -c main.c
  9. mohican.o: mohican.c
  10. $(CC) -c mohican.c
  11. clean:
  12. rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként

A fenti program kimenete

  1. 3 4
  2. *alma* *dio* *korte* *szilva*
  3. *eper* *cseresznye* *banan* *narancs*
  4. *mandarin* *szolo* *ribizli* *malna*
  5. *alma* *dio* *korte* *szilva*
  6. *eper* *cseresznye* *banan* *narancs*
  7. *mandarin* *szolo* *ribizli* *malna*
  8. 2 1
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.