===== Feladat 1 ===== Írjon egy **int megfordit(int num)** függvényt, amely az input vektorban megadott num (max 10 számjegy) számjegyeit megfordítja. Példa: Ha a **bemenet:** 47323 **kimenet:** 32374 int megfordit(int num) { int res = 0; while (num != 0) { int n = num % 10; res = res * 10 + n; num /= 10; } return res; } ===== Feladat 2 ===== Írjon egy **int megfordit(int num)** függvényt, amely az input vektorban megadott num bitjeit megfordítja. int megfordit(int num) { return ~res; } ===== Feladat 3 ===== Írjon egy **void binaris(short num)** függvényt, amely a num számot bináris formában írja ki. void binaris(short num) { short pos; for (pos = (sizeof(short) * 8 -1) ; pos >= 0 ; pos--) { (num & (1 << pos))? printf("1"): printf("0"); } } ===== Feladat 4 ===== Írjon egy **short atbillent(short num)** függvényt, amely a num szám második bitjét az ellenkezőjére változtatja, majd visszaadja az így kapott számot. Példa: Ha a **bemenet:** 1 **kimenet:** 3 short atbillent(short num) { return num ^ 0b10; } ===== Feladat 5 ===== Írjon egy **short atbillent(short num)** függvényt, amely a num szám második és negyedik bitjét az ellenkezőjére változtatja, majd visszaadja az így kapott számot. Példa: Ha a **bemenet:** 1 **kimenet:** 3 short atbillent(short num) { return num ^ 0b1010; } ===== Feladat 6 ===== Írjon egy **int bitstatusz(int num)** függvényt, amely a num szám harmadik bitjének státuszát adja vissza. Példa: Ha a **bemenet:** 5 **kimenet:** 1 int bitstatusz(int num) { return (num >> 2) & 1; } ===== Feladat 7 ===== Írjon egy **int bithossz(int num)** függvényt, amely a num szám bináris értékének tényleges hosszát adja vissza. Példa: Ha a **bemenet:** 5 (101) **kimenet:** 3 int bithossz(int num) { int count = 0, i; if(num == 0) return 0; for(i=0; i< 32; i++) { if((1 << i) & num) count = i; } return ++count; } ===== Feladat 8 ===== Írjon egy **int egyesbitek(int num)** függvényt, amely a num szám 1-es bitjeit számolja meg, majd visszaadja ezt az értéket. Példa: Ha a **bemenet:** 5 (101) **kimenet:** 2 int egyesbitek(int num) { int i, count=0; for(i=0; i< sizeof(int)*8; i++) { if( num & (1<< i) ) count++; } return count; } ===== Feladat 9 ===== Írjon egy **float matrixatlag(int sor, int oszlop, int matrix[sor][oszlop])** függvényt, amely átveszi egy mátrix méreteit és a mátrixot, majd visszaadja az átlagát. float matrixatlag(int sor, int oszlop, int matrix[sor][oszlop]) { long sum = 0; for(int i=0; i < sor; i++) for(int j=0; j < oszlop; j++) sum += matrix[i][j]; return (float)sum/(sor*oszlop); } ===== Feladat 10 ===== Írjon egy **int csere(int num)** függvényt, amely a num szám számjegyei közül az összes 0-t 1-re cseréli. int csere(int num) { if (num == 0) return 0; int digit = num % 10; if (digit == 0) digit = 1; return csere(num/10) * 10 + digit; }