===== C általános feladatok ===== ==== Feladat 1 ==== Írjon egy C programot, amely beolvas 5 egész számot egy tömbbe és kiíratja a legnagyobb elemének az értéket. **Megoldás:** #include main() { int tomb[5]; for(int i = 0; i<5; i++) { scanf("%d", &tomb[i]); } int legnagyobb = tomb[0]; for(int i = 1; i<5; i++) { if(legnagyobb < tomb[i]) { legnagyobb = tomb[i]; } } printf("%d", legnagyobb); } ==== Feladat 2 ==== Írjon egy C programot, amely beolvas 10 egész számot és kiíratja azokat a beolvasással ellentétes sorrendben (minden szám új sorba kerüljön). **Megoldás:** #include int main(void) { int values[10]; for (int i = 0; i < 10; ++i) { if (scanf("%d", &values[i]) != 1) { return 0; } } for (int i = 9; i >= 0; --i) { printf("%d\n", values[i]); } return 0; } ==== Feladat 3 ==== Írjon egy C programot, amely bekér egy "N" számot és NxN méretű négyzetet rajzol csillagokból a konzolba. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { putchar('*'); } putchar('\n'); } return 0; } ==== Feladat 4 ==== Írjon egy C programot, amely bekér egy egész számot, majd összeadja a számokat 1-től n-ig és kiírja az eredményt. **Megoldás:** #include int main() { int n; scanf("%d", &n); int sum = 0; for(int i = 1; i <= n; i++) { sum += i; } printf("%d", sum); } ==== Feladat 5 ==== Írjon egy C programot, amely kiírja kettő hatványait 2048-al bezárólag. **Megoldás:** #include int main(void) { int value = 2; while (value <= 2048) { printf("%d ", value); value *= 2; } return 0; } ==== Feladat 6 ==== Írjon egy C programot, amely a billentyűzetről bekért két egész szám összegét írja ki a kimenetre. **Megoldás:** #include int main(void) { int a, b; if (scanf("%d %d", &a, &b) != 2) { return 0; } printf("%d", a + b); return 0; } ==== Feladat 7 ==== Írjon egy C programot, amely a billentyűzetről bekért két egész szám különbségét írja ki a kimenetre. **Megoldás:** #include int main(void) { int a, b; if (scanf("%d %d", &a, &b) != 2) { return 0; } printf("%d", a - b); return 0; } ==== Feladat 8 ==== Írjon egy C programot, amely a billentyűzetről bekért két egész szám szorzatát írja ki a kimenetre. **Megoldás:** #include int main(void) { int a, b; if (scanf("%d %d", &a, &b) != 2) { return 0; } printf("%d", a * b); return 0; } ==== Feladat 9 ==== Írjon egy C programot, amely a billentyűzetről bekért két lebegőpontos szám hányadosát írja ki a kimenetre. **Megoldás:** #include int main(void) { float a, b; if (scanf("%f %f", &a, &b) != 2 || b == 0.0f) { return 0; } printf("%f", a / b); return 0; } ==== Feladat 10 ==== Írjon egy C programot, amely bekér egy számot és ha az egész akkor "int" szöveget, ha tört akkor "float" szöveget ír ki. **Megoldás:** #include int main(void) { float value; if (scanf("%f", &value) != 1) { return 0; } int integer_part = (int)value; if (value == (float)integer_part) { printf("int"); } else { printf("float"); } return 0; } ==== Feladat 11 ==== Írjon egy C programot, amely bekér egy karaktert és ha kisbetűs akkor "kicsi", ha nagybetűs akkor "nagy" szöveget ír ki. **Megoldás:** #include int main(void) { char c; if (scanf(" %c", &c) != 1) { return 0; } if (c >= 'a' && c <= 'z') { printf("kicsi"); } else if (c >= 'A' && c <= 'Z') { printf("nagy"); } return 0; } ==== Feladat 12 ==== Írjon egy C programot, amely elvégzi az összeadás és kivonás műveletet. A felhasználó ilyen bemenetet adhat: 4 - 2 **Megoldás:** #include int main(void) { int a, b, res = 0; char op; if (scanf("%d %c %d", &a, &op, &b) != 3) { return 0; } if (op == '-') { res = a - b; } else if (op == '+') { res = a + b; } printf("%d", res); return 0; } ==== Feladat 13 ==== Írjon egy C programot, amely beolvas egy számot és kiírja a számjegyeit fordított sorrendben. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } if (n < 0) { n = -n; } if (n == 0) { printf("0"); return 0; } while (n > 0) { printf("%d", n % 10); n /= 10; } return 0; } ==== Feladat 14 ==== Írjon egy C programot, amely egy bekért N értékig kiírja a páros számokat külön sorba. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } for (int i = 2; i <= n; i += 2) { printf("%d\n", i); } return 0; } ==== Feladat 15 ==== Írjon egy C programot, amely 0-tól egy bekért N értékig kiírja a páratlan számokat egymás után szóközök nélkül. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } for (int i = 1; i <= n; i += 2) { printf("%d", i); } return 0; } ==== Feladat 16 ==== Irjon egy C programot, amely beolvas egy egész számot és kiirja a számjegyeinek összegét. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } if (n < 0) { n = -n; } int sum = 0; while (n > 0) { sum += n % 10; n /= 10; } printf("%d", sum); return 0; } ==== Feladat 17 ==== Irjon egy C programot, amely első sorban beolvas egy N értéket, majd N darab egész számot és megszámolja, hány pozitív volt közülük. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } int count = 0; for (int i = 0; i < n; ++i) { int value; if (scanf("%d", &value) != 1) { value = 0; } if (value > 0) { count++; } } printf("%d", count); return 0; } ==== Feladat 18 ==== Irjon egy C programot, amely Celsius fokrol Fahrenheit fokra vált és két tizedes pontossággal kiirja az eredmenyt.
Fahrenheit = Celsius * 9/5 + 32 **Megoldás:** #include int main(void) { float celsius; if (scanf("%f", &celsius) != 1) { return 0; } float fahrenheit = celsius * 9.0f / 5.0f + 32.0f; printf("%.2f", fahrenheit); return 0; } ==== Feladat 19 ==== Irjon egy C programot, amely beolvas egy szó hosszú karakterláncot és megszámolja benne a magánhangzók számát (a, e, i, o, u, kis- és nagybetű). **Megoldás:** #include int main(void) { char word[201]; if (scanf("%200s", word) != 1) { return 0; } int count = 0; for (int i = 0; word[i] != NULL; ++i) { char c = word[i]; if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') { count++; } } printf("%d", count); return 0; } ==== Feladat 20 ==== Irjon egy C programot, amely két egész számot olvas be és kiirja az összes egész számot a két érték között, beleértve a határokat is. **Megoldás:** #include int main(void) { int a, b; if (scanf("%d %d", &a, &b) != 2) { return 0; } for (int i = a; i <= b; ++i) { printf("%d ", i); } return 0; } ==== Feladat 21 ==== Irjon egy C programot, amely kiszámolja egy beolvasott N szám faktoriálisát. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } unsigned long long fact = 1; for (int i = 2; i <= n; ++i) { fact *= i; } printf("%llu", fact); return 0; } ==== Feladat 22 ==== Irjon egy C programot, amely első sorban beolvas egy N értéket, majd N darab valós számot és kiirja az összegüket két tizedesjeggyel. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } double sum = 0.0; for (int i = 0; i < n; ++i) { double value; if (scanf("%lf", &value) != 1) { value = 0.0; } sum += value; } printf("%.2f", sum); return 0; } ==== Feladat 23 ==== Irjon egy C programot, amely egy beolvasott számhoz elkészíti a szorzótábláját 1-től 10-ig, minden eredményt külön sorba írva. **Megoldás:** #include int main(void) { int n; if (scanf("%d", &n) != 1) { return 0; } for (int i = 1; i <= 10; ++i) { printf("%d*%d=%d\n", n, i, n * i); } return 0; }