Table of Contents

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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
 
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
 
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 <stdio.h>
 
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.</br>Fahrenheit = Celsius * 9/5 + 32

Megoldás:

#include <stdio.h>
 
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 <stdio.h>
 
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 <stdio.h>
 
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 <stdio.h>
 
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 <stdio.h>
 
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 <stdio.h>
 
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;
}