===== 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;
}