Table of Contents
Feladat 1
Írjon egy “int oszthato(int*, int)” nevű függvényt, amely átvesz egy n elemű tömböt és méretét majd visszaadja hány darab 3-mal osztható van benne.
int oszthato(int *tomb, int n) { int db = 0; for (int i = 0; i < n; i++) { if (tomb[i] % 3 == 0) db++; } return db; }
Feladat 2
Írjon egy atlag() nevű függvényt, amely a paraméterében megadott két float típusú paraméter értékének átlagát adja vissza.
float atlag(float a, float b) { return (a + b) / 2; }
Feladat 3
Írjon egy atlag() nevű függvényt, amely egy 10 elemű int vektor átlagát adja vissza.
float atlag(int v[10]) { int osszeg = 0; for (int i = 0; i < 10; i++) osszeg += v[i]; return osszeg / 10.0; }
Feladat 4
Írjon egy max() nevű függvényt, amely egy 10 elemű int vektor legnagyobb elemének értékét adja vissza.
int max(int v[10]) { int m = v[0]; for (int i = 1; i < 10; i++) if (v[i] > m) m = v[i]; return m; }
Feladat 5
Írjon egy min() nevű függvényt, amely egy 10 elemű int vektor legkisebb elemének értékét adja vissza.
int min(int v[10]) { int m = v[0]; for (int i = 1; i < 10; i++) if (v[i] < m) m = v[i]; return m; }
Feladat 6
Írjon egy min() nevű függvényt, amely egy 10 elemű int vektor legkisebb elemének indexét adja vissza.
int min(int v[10]) { int idx = 0; for (int i = 1; i < 10; i++) if (v[i] < v[idx]) idx = i; return idx; }
Feladat 7
Írjon egy max() nevű függvényt, amely egy 10 elemű int vektor legnagyobb elemének indexét adja vissza.
int max(int v[10]) { int idx = 0; for (int i = 1; i < 10; i++) if (v[i] > v[idx]) idx = i; return idx; }
Feladat 8
Írjon egy fordit() nevű függvényt, amely egy 5 elemű int vektor elemeit megfordítja.
void fordit(int v[5]) { for (int i = 0; i < 5/2; i++) { int tmp = v[i]; v[i] = v[4-i]; v[4-i] = tmp; } }
Feladat 9
Írjon egy “int* osszead(int*, int*, int)” nevű függvényt, amely átvesz két azonos méretű vektort és a méretüket, majd visszaadja a két vektor összegét tartalmazó vektort.
#include <stdlib.h> int* osszead(int *a, int *b, int n) { int *c = (int*)calloc(n, sizeof(int)); for (int i = 0; i < n; i++) { c[i] = a[i] + b[i]; } return c; }
Feladat 10
Írjon egy “int negyzetszam(int)” nevű függvényt, amely átvesz egy számot és ha az négyzetszám akkor 1-et ad vissza, egyébként 0-t.
#include <math.h> int negyzetszam(int x) { if (x < 0) return 0; int gyok = (int)sqrt(x); return gyok * gyok == x; }
Feladat 11
Írjon egy “void csere(int*, int*)” nevű függvényt, amely átvesz két számot és megcseréli az értéküket.
void csere(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; }
Feladat 12
Írjon egy “int szorzat(int*, int)” nevű függvényt, amely átvesz egy vektort és a méretét, majd az elemeinek szorzatát adja vissza.
int szorzat(int *t, int n) { int s = 1; for (int i = 0; i < n; i++) s *= t[i]; return s; }
Feladat 13
Írjon egy “int* negyzet(int*, int)” nevű függvényt, amely átvesz egy vektort és a méretét, majd az elemeinek négyzetét tartalmazó vektort adja vissza.
#include <stdlib.h> int* negyzet(int *t, int n) { int *res = (int*)calloc(n, sizeof(int)); for (int i = 0; i < n; i++) { res[i] = t[i] * t[i]; } return res; }
Feladat 14
Írjon egy “int csak_paros(int*, int)” nevű függvényt, amely átvesz egy vektort és a méretét. Ha csak páros számokat tartalmaz a vektor, akkor 1-et, egyébként 0-t ad vissza.
int csak_paros(int *t, int n) { for (int i = 0; i < n; i++) { if (t[i] % 2 != 0) return 0; } return 1; }
Feladat 15
Írjon egy “int csak_paratlan(int*, int)” nevű függvényt, amely átvesz egy vektort és a méretét. Ha csak páratlan számokat tartalmaz a vektor, akkor 1-et, egyébként 0-t ad vissza.
int csak_paratlan(int *t, int n) { for (int i = 0; i < n; i++) { if (t[i] % 2 == 0) return 0; } return 1; }
Feladat 16
Írjon egy “int osszeg_paratlan(int*, int)” nevű függvényt, amely visszaadja a paraméterként kapott tömb páratlan elemeinek összegét.
int osszeg_paratlan(int *t, int n) { int sum = 0; for (int i = 0; i < n; i++) { if (t[i] % 2 != 0) sum += t[i]; } return sum; }
Feladat 17
Írjon egy “int elso_negativ_index(int*, int)” nevű függvényt, amely visszaadja az első negatív elem indexét, ha nincs ilyen, akkor -1-et.
int elso_negativ_index(int *t, int n) { for (int i = 0; i < n; i++) { if (t[i] < 0) return i; } return -1; }
Feladat 18
Írjon egy “void feltolt_szammal(int*, int, int)” nevű függvényt, amely a paraméterként kapott tömb minden elemét ugyanarra az értékre állítja.
void feltolt_szammal(int *t, int n, int ertek) { for (int i = 0; i < n; i++) { t[i] = ertek; } }
Feladat 19
Írjon egy “double paros_atlag(const int*, int)” nevű függvényt, amely visszaadja a tömb páros elemeinek átlagát (ha nincs páros elem, az átlag legyen 0).
double paros_atlag(const int *t, int n) { int sum = 0, db = 0; for (int i = 0; i < n; i++) { if (t[i] % 2 == 0) { sum += t[i]; db++; } } if (db == 0) return 0; return (double)sum / db; }
Feladat 20
Írjon egy “void duplaz(int*, int)” nevű függvényt, amely a tömb minden elemét megduplázza.
void duplaz(int *t, int n) { for (int i = 0; i < n; i++) { t[i] *= 2; } }
Feladat 21
Írjon egy “int monoton_novekvo(const int*, int)” nevű függvényt, amely 1-et ad vissza, ha a tömb szigorúan növekvő, egyébként 0-t.
int monoton_novekvo(const int *t, int n) { for (int i = 1; i < n; i++) { if (t[i] <= t[i-1]) return 0; } return 1; }
Feladat 22
Írjon egy “int legnagyobb_kulonbseg(const int*, int)” nevű függvényt, amely visszaadja a tömb legnagyobb és legkisebb eleme közötti különbséget.
int legnagyobb_kulonbseg(const int *t, int n) { int min = t[0], max = t[0]; for (int i = 1; i < n; i++) { if (t[i] < min) min = t[i]; if (t[i] > max) max = t[i]; } return max - min; }
Feladat 23
Írjon egy “int tartalmaz(const int*, int, int)” nevű függvényt, amely 1-et ad vissza, ha a keresett érték megtalálható a tömbben, különben 0-t.
int tartalmaz(const int *t, int n, int ertek) { for (int i = 0; i < n; i++) { if (t[i] == ertek) return 1; } return 0; }
Feladat 24
Írjon egy “void fordit_szoveg(char*)” nevű függvényt, amely megfordítja a paraméterként kapott szöveget.
#include <string.h> void fordit_szoveg(char *s) { int h = strlen(s); for (int i = 0; i < h/2; i++) { char tmp = s[i]; s[i] = s[h-1-i]; s[h-1-i] = tmp; } }
Feladat 25
Írjon egy “int osszeg_tartomany(const int*, int n, int min, int max)” nevű függvényt, amely visszaadja a tömb azon elemeinek összegét, amelyek a megadott zárt intervallumba esnek.
int osszeg_tartomany(const int *t, int n, int also, int felso) { int sum = 0; for (int i = 0; i < n; i++) { if (t[i] >= also && t[i] <= felso) sum += t[i]; } return sum; }