Programozó versenyek

Levelező Magas szintű programozási nyelvek 1 beugró, 2015. június 5.

2015. június 5. 13:10 – 2015. június 5. 16:10

Gördülő összeg

Írjon függvényt, amely paraméterként megkapja egy dupla pontosságú valósakat 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, dupla pontosságú valósakat tartalmazó egydimenziós tömböt, amelynek annyi eleme van, ahány sora az eredeti tömbnek volt! A függvény az új tömböt töltse fel az eredeti tömb egyes soraiban található elemek összegeinek gördülő összegével, majd adja vissza az új tömb kezdőcímét! Másképpen fogalmazva: az új tömb i-edik eleme az eredeti tömb első i sorában található elemek összegét tartalmazza!

A függvény specifikációja

double *gordulo(double *, int, int);

Megjegyzés

A függvényt helyezze a gordulo.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 állományok 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!

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. double *gordulo(double *, int, int);
  4. int main()
  5. {
  6.   double t[3][4] = {{1.0,  2.0,  3.0,  4.0},
  7.                     {5.0,  6.0,  7.0,  8.0},
  8.                     {9.0, 10.0, 11.0, 12.0}};
  9.   double *p = gordulo((double *)t, 3, 4);
  10.   int i;
  11.   for (i = 0; i < 3; ++i)
  12.     printf("%.3f\n", p[i]);
  13.   putchar('\n');
  14.   free(p);
  15.   return EXIT_SUCCESS;
  16. }
letöltés szöveges állományként

Makefile

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

A fenti program kimenete

  1. 10.000
  2. 36.000
  3. 78.000
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.