Programlama Matematik gibidir. Matematikte olduğu gibi, teori yeterli değildir. Çünkü konuyu net bir şekilde anlamak için konuyla ilgili problem çözme alıştırması yapmalısınız. Tıpkı bunun gibi programlamada da herhangi bir konuyu öğrenmek için o konuyla ilgili kodlama (kendinizle) pratiği yapmalısınız.
Bu yüzden burada çıktısı ve adım adım açıklaması ile çok sayıda programı listeledik. En basit C programlarından, C programını kullanarak bilgisayarınızı kapatmaya kadar burada öğrenebilirsiniz.
Ancak tüm bu programlardan geçmeden önce. Önce burada verilen bazı ilginç programlara bir göz atalım. Burada listelenen bu programların çıktılarına baktıktan sonra, programlamaya olan ilginizin arttığına eminim. Koda bakarken panik yapmayın (kod, içeride ne olduğu hakkında bir fikriniz yok). Çünkü burada C programlama hakkında düşündüğünüzden daha fazlasını öğreneceksiniz.
Eminim tüm programları öğrendikten sonra aşağıda verilen programları anlayabilecek ve bunları kendiniz de değiştirebileceksiniz. Ve belki benim düşüncemin ötesinde bazı programlar yaratabilirsiniz.
İş görüşmelerinden sık sık C programları sorulur. Bu programlar temel bilgiler, dizi, dizge, işaretçi, bağlantılı liste, dosya işleme vb. seçeneklerden sorulabilir.
Bu listedeki örnekler temel C bilgisi ile birlikte ileri seviye algoritma kavramlarını içerecektir.
1- Merhaba Dünya Yazdırma
1 2 3 4 5 6 7 8 |
#include <stdio.h> int main() { // printf() displays the string inside quotation printf("Hello, World!"); return 0; } |
Ekran Çıktısı:
1 2 3 |
Hello World |
2- Tam Sayı Yazdırma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> int main() { int number; printf("Sayıyı Gir : "); // reads and stores input scanf("%d", &number); // displays output printf("Girdiğiniz Sayı : %d", number); return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Sayıyı Gir : 20 Girdiğiniz Sayı : 20 |
3- Odanlıklı Sayıların çarpımı
Bu örnekte, kullanıcı tarafından girilen iki ondalıklı sayının çarpımı hesaplanır ve ekrana yazdırılır.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> int main() { double a, b, sonuc; printf("Sayı 1: "); scanf("%lf", &a); printf("Sayı 2: "); scanf("%lf", &b); sonuc = a * b; printf("Sonuç = %.2lf", sonuc); return 0; } |
Ekran Çıktısı:
1 2 3 4 5 |
Sayı 1: 3.5 Sayı 2: 2 Sonuç = 7.00 |
Bu örnekte, bir karakterin ASCII değerini nasıl bulacağınızı öğreneceksiniz.
4- Ascii karakter kodu bulma
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <stdio.h> int main() { char c; printf("Bir karakter girin : "); scanf("%c", &c); printf("%c karakteri ASCII değeri = %d", c, c); return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Bir karakter girin : A A karakteri ASCII değeri = 65 |
Bu örnekte, bir tamsayı başka bir tam sayıya bölündüğünde bölümü ve kalanı bulmayı öğreneceksiniz.
5- Bölümü ve kalanı bulma
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <stdio.h> int main() { int bolunen, bolen, bolum, kalan; printf("Bölünen: "); scanf("%d", &bolunen); printf("Bölen: "); scanf("%d", &bolen); // Computes quotient bolum = bolunen / bolen; // Computes remainder kalan = bolunen % bolen; printf("Bölüm = %d\n", bolum); printf("Kalan = %d", kalan); return 0; } |
Ekran Çıktısı:
1 2 3 4 5 6 |
Bölünen: 21 Bölen: 4 Bölüm = 5 Kalan = 1 |
6- sizeof kullanım örneği
Bu örnekte, sizeof operatörünü kullanarak her bir değişkenin boyutunu değerlendirmeyi öğreneceksiniz.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include<stdio.h> int main() { int intType; float floatType; double doubleType; char charType; // sizeof evaluates the size of a variable printf("int Boyutu : %zu bytes\n", sizeof(intType)); printf("float Boyutu : %zu bytes\n", sizeof(floatType)); printf("double Boyutu : %zu bytes\n", sizeof(doubleType)); printf("char Boyutu : %zu byte\n", sizeof(charType)); return 0; } |
Ekran Çıktısı:
1 2 3 4 5 6 |
int Boyutu : 4 bytes float Boyutu : 4 bytes double Boyutu : 8 bytes char Boyutu : 1 byte |
7- İki değişkenin değerini değiştirme
Bu örnekte, iki farklı teknik kullanarak C programlamasında iki sayıyı değiştirmeyi öğreneceksiniz.
İlk yöntemde üçüncü bir değişken kullanılarak yer değiştirme işlemi gerçekleştirirken 2. yöntemde üçüncü değişken kullanılmamaktadır.
C Kodları: Yöntem-1 (3. Değişken Kullanarak Yer Değiştirme)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include<stdio.h> int main() { double ilkSayi, ikinciSayi, temp; printf("Sayı 1: "); scanf("%lf", &ilkSayi); printf("Sayı 2: "); scanf("%lf", &ikinciSayi); temp = ilkSayi; ilkSayi = ikinciSayi; ikinciSayi = temp; printf("\nDeğişiklikten sonra ilkSayi = %.2lf\n", ilkSayi); printf("Değişiklikten sonra ikinciSayi = %.2lf", ikinciSayi); return 0; } |
C Kodları: Yöntem-2 (3.Değişken Kullanmadan Yer Değiştirme)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <stdio.h> int main() { double a, b; printf("Sayı 1: "); scanf("%lf", &a); printf("Sayı 2: "); scanf("%lf", &b); a = a - b; b = a + b; a = b - a; printf("Değişiklikten sonra, a = %.2lf\n", a); printf("Değişiklikten sonra, b = %.2lf", b); return 0; } |
Ekran Çıktısı:
1 2 3 4 5 6 7 |
Sayı 1: 5 Sayı 2: 10 Değişiklikten sonra ilkSayi = 10.00 Değişiklikten sonra ikinciSayi = 5.00 |
8- Sayının çift mi tek mi olduğunu bulma
Bu örnekte, kullanıcı tarafından girilen bir sayının çift mi yoksa tek mi olduğunu kontrol etmeyi öğreneceksiniz.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> int main() { int num; printf("Sayı Gir: "); scanf("%d", &num); // True if num is perfectly divisible by 2 if(num % 2 == 0) printf("%d Çift.", num); else printf("%d Tek.", num); return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Sayı Gir: 14 14 Çift. |
9- Üç sayıdan büyüğünü bulma
Bu örnekte, kullanıcı tarafından girilen üç sayı arasında en büyük sayıyı bulmayı öğreneceksiniz.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> int main() { double n1, n2, n3; printf("Sayı1: "); scanf("%lf", &n1); printf("Sayı2: "); scanf("%lf", &n2); printf("Sayı3: "); scanf("%lf", &n3); if (n1 >= n2 && n1 >= n3) printf("Girilen En Büyük Sayı : %.2lf.", n1); else if (n2 >= n1 && n2 >= n3) printf("Girilen En Büyük Sayı : %.2lf.", n2); else printf("Girilen En Büyük Sayı : %.2lf.", n3); return 0; } |
Ekran Çıktısı:
1 2 3 4 5 6 |
Sayı1: 8 Sayı2: 15 Sayı3: 4 Girilen En Büyük Sayı : 15.00 |
10- İkinci dereceden denkleme kökleri bulma
Bu örnekte, C programlamasında ikinci dereceden bir denklemin köklerini bulmayı öğreneceksiniz.
İkinci dereceden bir denklemin standart biçimi şöyledir:
1 2 3 4 5 |
ax<sup>2</sup> + bx + c = 0, burada a, b ve c gerçek sayılardır ve a != 0 |
b2-4ac terimi, ikinci dereceden bir denklemin ayırt edicisi olarak bilinir. Köklerin doğasını anlatır.
Ayırıcı 0’dan büyükse, kökler gerçek ve farklıdır.
Ayırıcı 0’a eşitse, kökler gerçek ve eşittir.
Ayırıcı 0’dan küçükse, kökler karmaşık ve farklıdır.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <math.h> #include <stdio.h> int main() { double a, b, c, discriminant, kok1, kok2, realPart, imagPart; printf("a: "); scanf("%lf", &a); printf("b: "); scanf("%lf", &b); printf("c: "); scanf("%lf", &c); discriminant = b * b - 4 * a * c; // condition for real and different roots if (discriminant > 0) { kok1 = (-b + sqrt(discriminant)) / (2 * a); kok2 = (-b - sqrt(discriminant)) / (2 * a); printf("root1 = %.2lf and root2 = %.2lf", kok1, kok2); } // condition for real and equal roots else if (discriminant == 0) { kok1 = kok2 = -b / (2 * a); printf("root1 = root2 = %.2lf;", kok1); } // if roots are not real else { realPart = -b / (2 * a); imagPart = sqrt(-discriminant) / (2 * a); printf("kök1 = %.2lf+%.2lfi ve kök2 = %.2f-%.2fi", realPart, imagPart, realPart, imagPart); } return 0; } |
Ekran Çıktısı:
1 2 3 4 5 6 |
a: 2 b: 4 c: 3 kök1 = -1.00+0.71i ve kök2 = -1.00-0.71i |
11- Artık yıl bulma
Bu örnekte, kullanıcı tarafından girilen yılın artık yıl olup olmadığını kontrol etmeyi öğreneceksiniz.
Artık yıl, yüzyıl yılları dışında (00 ile biten yıllar) 4’e bölünebilir. Yüzyıl, ancak 400 ile mükemmel bir şekilde bölünebilirse artık bir yıldır.
Örneğin,
1999 artık bir yıl değil
2000 artık bir yıldır
2004 artık bir yıldır
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <stdio.h> int main() { int yil; printf("Yıl Girin: "); scanf("%d", &yil); if (yil % 400 == 0) { printf("%d is artık yıl.", yil); } else if (yil % 100 == 0) { printf("%d artık yıl değil.", yil); } else if (yil % 4 == 0) { printf("%d artık yıl.", yil); } else { printf("%d artık yıl değil.", yil); } return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Yıl Girin: 2021 2021 artık yıl değil. |
12- Sayının işaretini bulma
Bu örnekte, bir sayının (kullanıcı tarafından girilen) negatif mi yoksa pozitif mi olduğunu kontrol etmeyi öğreneceksiniz.
Bu program kullanıcıdan bir sayı alır ve bu sayının pozitif mi, negatif mi yoksa sıfır mı olduğunu kontrol eder.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> int main() { double num; printf("Sayı: "); scanf("%lf", &num); if (num <= 0.0) { if (num == 0.0) printf("0 girdiniz.."); else printf("Negatif sayı girdiniz.."); } else printf("Pozitif sayı girdiniz.."); return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Sayı: -14 Negatif sayı girdiniz. |
13- Girilen sayıya kadar olan sayıların toplamı
Bu örnekte, kullanıcı tarafından girilen doğal sayıya kadar sayıların toplamını hesaplamayı öğreneceksiniz.
Pozitif sayılar 1, 2, 3 … doğal sayılar olarak bilinir. Örnek olarak kullanıcı 10 sayısı girdiyse;
10’a kadar olan doğal sayıların toplamı:
1 2 3 |
sum = 1 + 2 + 3 + ... + 10 |
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> int main() { int n, i, toplam = 0; printf("Sayı Gir: "); scanf("%d", &n); for (i = 1; i <= n; ++i) { toplam += i; } printf("Toplam = %d", toplam); return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Sayı Gir: 4 Toplam = 10 |
14- Sayının faktöriyelini bulma
Bu örnekte, kullanıcı tarafından girilen bir sayının faktöriyelini hesaplamayı öğreneceksiniz.
Pozitif bir n sayısının faktöriyeli şu şekilde verilir:
1 2 3 |
(n!) = 1 * 2 * 3 * 4....n |
Negatif bir sayının faktöriyeli yoktur. Ve 0’ın faktöriyeli 1’dir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <stdio.h> int main() { int n, i; unsigned long long fact = 1; printf("Sayı : "); scanf("%d", &n); // shows error if the user enters a negative integer if (n < 0) printf("Hata! Negatif sayılarda faktoriyel hesaplanamaz."); else { for (i = 1; i <= n; ++i) { fact *= i; } printf("%d sayısının faktoriyeli = %llu", n, fact); } return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Sayı : 5 5 sayısının faktoriyeli = 12 |
14- Sayının çarpım tablosunu bulma
Bu örnekte, kullanıcı tarafından girilen bir sayının çarpım tablosunu oluşturmayı öğreneceksiniz.
Aşağıdaki program kullanıcıdan bir tamsayı girdisi alır ve 10’a kadar çarpım tablosunu oluşturur.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <stdio.h> int main() { int n, i; printf("Sayı Gir: "); scanf("%d", &n); for (i = 1; i <= 10; ++i) { printf("%d * %d = %d \n", n, i, n * i); } return 0; } |
Ekran Çıktısı:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sayı Gir: 5 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50 |
15- Sayının fibonacci serisini gösteren program
Bu örnekte, ilk n sayının (kullanıcı tarafından girilen) Fibonacci dizisini görüntülemeyi öğreneceksiniz.
Fibonacci dizisi, sonraki terimin önceki iki terimin toplamı olduğu bir dizidir. Fibonacci dizisinin ilk iki terimi 0 ve ardından 1’dir.
1 2 3 |
Fibonacci dizisi: 0, 1, 1, 2, 3, 5, 8, 13, 21 |
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <stdio.h> int main() { int i, n, t1 = 0, t2 = 1, nextTerm; printf("Terim sayısını girin: "); scanf("%d", &n); printf("Fibonacci Series: "); for (i = 1; i <= n; ++i) { printf("%d, ", t1); nextTerm = t1 + t2; t1 = t2; t2 = nextTerm; } return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Terim sayısını girin: 5 Fibonacci Series: 0, 1, 1, 2, 3, |
16- EBOB ve EKOK bulan program
Döngüler ve karar verme ifadeleri kullanarak iki tam sayının (hem pozitif hem de negatif tam sayılar için) OBEB hesaplamasının farklı yollarına ilişkin örnekler.
C programlamada en büyük ortak böleni bulmanın birçok yolu vardır.
Örnek1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> int main() { int n1, n2, i, gcd; printf("1. Sayı: "); scanf("%d", &n1); printf("2. Sayı: "); scanf("%d", &n2); for(i=1; i <= n1 && i <= n2; ++i) { if(n1%i==0 && n2%i==0) gcd = i; } printf("%d ve %d sayılarının OBEB' i = %d", n1, n2, gcd); return 0; } |
Ekran Çıktısı:
1 2 3 4 5 |
1. Sayı: 20 2. Sayı: 30 20 ve 30 sayılarının OBEB' i = 10 |
Bu programda, kullanıcı tarafından girilen iki tamsayı n1 ve n2 değişkenlerinde saklanır ve daha sonra, i n1 ve n2’den küçük olana kadar for döngüsü yinelenir.
Her yinelemede, hem n1 hem de n2 tam olarak i ile bölünebiliyorsa, i’nin değeri gcd’ye atanır.
For döngüsü tamamlandığında, iki sayının en büyük ortak böleni değişken gcd’de saklanır.
While Döngüsü ile OBEB Hesaplama
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <stdio.h> int main() { int n1, n2; printf("İki sayı girin : "); scanf("%d %d",&n1,&n2); while(n1!=n2) { if(n1 > n2) n1 -= n2; else n2 -= n1; } printf("OBEB= %d",n1); return 0; } |
17- Sayının basamak sayısını gösteren program
Bu program kullanıcıdan bir tamsayı alır ve basamak sayısını hesaplar. Örneğin: Kullanıcı 3452 girerse, programın çıktısı 4 olacaktır.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <stdio.h> int main() { long long n; int count = 0; printf("Sayı: "); scanf("%lld", &n); while (n != 0) { n /= 10; // n = n/10 ++count; } printf("Basamak Sayısı: %d", count); } |
Ekran Çıktısı:
1 2 3 4 |
Sayı: 3452 Basamak Sayısı: 4 |
18- Palindrom sayı olup olmadığını gösteren program
Bu örnekte, kullanıcı tarafından girilen sayının bir palindrom sayı olup olmadığını kontrol etmeyi öğreneceksiniz.
Palindromik sayı, iki taraftan okunduğu zaman okunuş yönüyle aynı olan sayılardır.
Örnek: 1, 4, 8, 99, 101, 363, 4004, 9889, 13531 vb.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <stdio.h> int main() { int n, reversedN = 0, remainder, originalN; printf("Sayı: "); scanf("%d", &n); originalN = n; while (n != 0) { remainder = n % 10; reversedN = reversedN * 10 + remainder; n /= 10; } if (originalN == reversedN) printf("%d sayısı palindromik sayıdır.", originalN); else printf("%d sayısı palindromik sayı değildir.", originalN); return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Sayı: 12321 12321 sayısı palindromik sayıdır. |
19- Sayının asal olup olmadığını gösteren program
Bu örnekte, kullanıcı tarafından girilen bir tamsayının asal sayı olup olmadığını kontrol etmeyi öğreneceksiniz.
Bir asal sayı, yalnızca 1’e ve kendisine bölünebilen pozitif bir tam sayıdır. Örneğin: 2, 3, 5, 7, 11, 13, 17
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <stdio.h> int main() { int n, i, flag = 0; printf("Pozitif bir sayı girin: "); scanf("%d", &n); for (i = 2; i <= n / 2; ++i) { if (n % i == 0) { flag = 1; break; } } if (n == 1) { printf("1 ne asal ne de bileşiktir."); } else { if (flag == 0) printf("%d sayısı Asal Sayıdır.", n); else printf("%d sayısı Asal Sayı değildir.", n); } return 0; } |
Ekran Çıktısı:
1 2 3 4 |
Pozitif bir sayı girin: 29 29 sayısı Asal Sayıdır. |
20- Aralıktaki asal sayıları gösteren program
Bu örnekte, kullanıcı tarafından girilen iki sayı arasındaki tüm asal sayıları yazdırmayı öğreneceksiniz.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#include <stdio.h> int main() { int low, high, i, flag; printf("Sayı 1: "); scanf("%d", &low); printf("Sayı 2: "); scanf("%d", &high); printf(" %d ve %d arasındaki asal sayılar: ", low, high); while (low < high) { flag = 0; if (low <= 1) { ++low; continue; } for (i = 2; i <= low / 2; ++i) { if (low % i == 0) { flag = 1; break; } } if (flag == 0) printf("%d ", low); ++low; } return 0; } |
Ekran Çıktısı:
1 2 3 4 5 |
Sayı 1: 5 Sayı 2: 20 5 ve 20 arasındaki asal sayılar: 5 7 11 13 17 19 |
21- Armstrong sayı olup olmadığını gösteren program
Bu örnekte, kullanıcı tarafından girilen bir tamsayının Armstrong sayı olup olmadığını kontrol etmeyi öğreneceksiniz.
İlk örnek 3 basamaklı bir sayının Armstrong sayı olup olmadığını kontrol ederken, ikinci örneğimizde n basamaklı yani kullanıcının girdiği herhangi bir sayıya göre işlem yapmaktadır.
Pozitif bir tamsayı, Armstrong numarası olarak adlandırılır (n sırasına göre)
1 2 3 |
abcd... = a<sup>n</sup> + b<sup>n</sup> + c<sup>n</sup> + d<sup>n</sup> + |
Armstrong sayısının 3 basamaklı olması durumunda, her basamağın küplerinin toplamı, sayının kendisine eşittir. Örneğin, 153 bir Armstrong numarasıdır çünkü
1 2 3 |
153 = 1*1*1 + 5*5*5 + 3*3*3 |
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <stdio.h> int main() { int num, originalNum, remainder, result = 0; printf("3 Basamaklı sayı girin: "); scanf("%d", &num); originalNum = num; while (originalNum != 0) { remainder = originalNum % 10; result += remainder * remainder * remainder; originalNum /= 10; } if (result == num) printf("%d Armstrong sayıdır.", num); else printf("%d Armstrong sayı değildir.", num); return 0; } |
Ekran Çıktısı:
1 2 3 4 |
3 Basamaklı sayı girin: 371 371 Armstrong sayıdır. |
22- Fonksiyon kullanarak sayıların toplamını hesaplama
Bu örnekte, özyinelemeli(recursive) bir fonksiyon kullanarak doğal sayıların toplamını bulmayı öğreneceksiniz.
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <stdio.h> int sayiTopla(int n); int main() { int num; printf("Sayı Gir: "); scanf("%d", &num); printf("Toplam = %d", sayiTopla(num)); return 0; } int sayiTopla(int n) { if (n != 0) return n + sayiTopla(n - 1); else return n; } |
Ekran Çıktısı:
1 2 3 4 |
Sayı Gir: 20 Toplam = 210 |
Başlangıçta sayiTopla() main () ‘den çağrılır ve 20 argüman olarak iletilir.
20 sayısı sayiTopla(19) sonucuna eklenir.
sayiTopla() ‘den sayiTopla()’ ye bir sonraki fonksiyon çağrısında, sayiTopla(18) sonucuna eklenen 19 geçilir. Bu süreç n, 0’a eşit olana kadar devam eder.
N 0’a eşit olduğunda, özyinelemeli çağrı yoktur. Bu, sonuçta tam sayıların toplamını main () işlevine döndürür.
23- İçi boş üçgen çizimi
C Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include<stdio.h> int main() { int sayi,icBosluk,disBosluk; int i; int j; printf("Bir sayı girin:"); scanf("%d",&sayi); icBosluk=-1; disBosluk=sayi-1; for(i=1;i<=sayi-1;i++) { if(i!=sayi) { for(j=1;j<=disBosluk;j++) printf(" "); printf("*"); } if(i!=1) { for(j=1;j<=icBosluk;j++) printf(" "); printf("*"); } icBosluk+=2; disBosluk--; printf("\n"); } icBosluk+=2; for(i=1;i<=icBosluk;i++) printf("*"); printf("\n"); return 0; } |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 |
Bir sayı girin:8 * * * * * * * * * * * * * *************** |
24- İçi boş dikdörtgen çizme
C kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include<stdio.h> int main() { int sayi; int i; int j; printf("Bir sayi girin:"); scanf("%d",&sayi); for(i=1;i<=sayi;i++) { if(i==1 || i==sayi){ for(j=1;j<=sayi;j++) printf("*"); printf("\n"); } else{ for(j=1;j<=sayi;j++){ if(!(j==1 || j==sayi)) printf(" "); else printf("*");} printf("\n");} } return 0; } |
Çıktı
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Bir sayi girin:10 ********** * * * * * * * * * * * * * * * * ********** |
25- İçi boş baklava çizimi
C Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#include<stdio.h> int main() { int sayi,icBosluk,disBosluk; int i; int j; printf("Bir sayi girin:"); scanf("%d",&sayi); icBosluk=-1; disBosluk=sayi-1; for (i=1;i<=sayi;i++) { for(j=1;j<=disBosluk;j++) printf(" "); printf("*"); if(i!=1) { for(j=1;j<=icBosluk;j++) printf(" "); printf("*"); } printf("\n"); icBosluk+=2; disBosluk--; } icBosluk-=4; disBosluk=1; for( i=1;i<sayi;i++) { for(j=1;j<=disBosluk;j++) printf(" "); printf("*"); if(i!=sayi-1) { for(j=1;j<=icBosluk;j++) printf(" "); printf("*"); } printf("\n"); icBosluk-=2; disBosluk++; } return 0; } |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Bir sayi girin:10 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
26- Fibonacci sırası bulma
C ile fibonacci sayı bulan program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include<stdio.h> int fibonacci(int); int main() { int sayi; printf("Fibonacci'nin kacinci elemanini istiyorsunuz?:"); scanf("%d",&sayi); printf("Fibonacci(%d)=%d\n",sayi,fibonacci(sayi)); return 0; } int fibonacci(int sayi) { int x=0,y=1,i,toplam=0; if(sayi<=1) return sayi; else { for(i=0;i<=sayi-2;i++) { toplam=x+y; x=y; y=toplam; } return toplam ; } } |
Çıktı:
1 2 3 4 |
Fibonacci'nin kacinci elemanini istiyorsunuz?:7 Fibonacci(7)=13 |
27- İçi dolu baklava çizme
C Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include<stdio.h> int main() { int sayi,yildiz,bosluk; int i; int j; printf("bir sayi girin:"); scanf("%d",&sayi); yildiz=1; bosluk=sayi-1; for(i=1;i<=sayi;i++) { for(j=1;j<=bosluk;j++) printf(" "); for(j=1;j<=yildiz;j++) printf("*"); bosluk--; yildiz+=2; printf("\n"); } yildiz-=4; for(i=1;i<sayi;i++) { for(j=1;j<=i;j++) printf(" "); for(j=1;j<=yildiz;j++) printf("*"); yildiz-=2; printf("\n"); } return 0; } |
Çıktı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
bir sayi girin:10 * *** ***** ******* ********* *********** ************* *************** ***************** ******************* ***************** *************** ************* *********** ********* ******* ***** *** * |
28- C Sayı Tahmin Oyunu
Bu uygulamada bilgisayarın tuttuğu sayıyı tahmin eden bir uygulama yazacağız.
Uygulamada bilgisayar bir sayı tutacak ve kullanıcı aşağı yukarı hareket ederek sayıyı tahmin etmeye çalışacaktır.
C Program Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#include<stdio.h> #include<stdlib.h> #include<time.h> int sayiTahmin(void); int main() { int tahmin,temp; char devam_mi; srand(time(NULL)); do{ temp=sayiTahmin(); printf("1-1000 arasinda bir sayi tuttum\n"); printf("Tahmin edebilir misin?\n"); printf("Lutfen ilk tahminini gir :"); scanf("%d",&tahmin); if(tahmin==temp) { printf("Mukemmel bildiniz !\n"); printf("Tekrar oynamak istermisiniz:[E yada H]"); do{ scanf("%c",&devam_mi); }while(devam_mi=='\n'); }/*if in sonu*/ while(tahmin!=temp) if(tahmin>temp) { printf("Cok buyuk.Tekrar deneyin:"); scanf("%d",&tahmin); if(tahmin==temp) { printf("Mukemmel bildiniz !\n"); printf("Tekrar oynamak istermisiniz:[E yada H]"); do{ scanf("%c",&devam_mi); }while(devam_mi=='\n'); }/*if in sonu*/ } else if(tahmin<temp) { printf("Cok kucuk.Tekrar deneyin:"); scanf("%d",&tahmin); if(tahmin==temp) { printf("Mukemmel bildiniz !\n"); printf("Tekrar oynamak istermisiniz:[E yada H]"); do{ scanf("%c",&devam_mi); }while(devam_mi=='\n'); }/*if in sonu*/ } } while(devam_mi=='E'|| devam_mi=='e'); return 0; } int sayiTahmin(void) { return 1+rand()%1000; } |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
1-1000 arasinda bir sayi tuttum Tahmin edebilir misin? Lutfen ilk tahminini gir :500 Cok buyuk.Tekrar deneyin:250 Cok buyuk.Tekrar deneyin:125 Cok buyuk.Tekrar deneyin:75 Cok kucuk.Tekrar deneyin:100 Cok buyuk.Tekrar deneyin:85 Cok kucuk.Tekrar deneyin:95 Cok buyuk.Tekrar deneyin:90 Mukemmel bildiniz ! Tekrar oynamak istermisiniz:[E yada H]h |
C Dili Örnekleri
C Merhaba Dünya Yazdıran Program
C Kullanıcıdan int, float ve String Girişi Alma
C N Tane Sayıyı Toplan Program(Tam Sayı ve Ondalıklı Sayı)
C Toplama, Çıkarma, Çarpma ve Bölme
C İki Sayının Yerini Değiştirme
C İki Değişken ile Sayıların Yerini Değiştirme (Üçüncü Değişken Kullanmadan)
C Kullanıcının Girdiği Sayının Çift mi Tek mi Olduğunu Kontrol Eden Program
C Üç Sayıdan Büyük Olanı Bulan Program
C Sayının Negatif mi Pozitif mi Olduğunu Kontrol Eden Program
C Artık Yıl Kontrol Eden Program
C İki Sayının EKOK’unu Bulan Program
C İki Sayının EBOB’unu Bulan Program
C Çarpım Tablosunu Yazdıran Program
C Sayının Faktöriyelini Bulan Program
C Dizideki En Büyük ve En Küçük Sayıyı Bulan Program
C Asal Sayı Kontrolü Yapan Program
C Yazılı Ortalamasını Hesaplayıp Geçti Kaldı Yazdıran Program
C Dairenin Alanını ve Çevresini Hesaplayan Program
C Girilen Harfin Ünlü yada Ünsüz Olduğunu Yazdıran Program
C Fibonacci Sayıyı Bulan Program
C İçi Boş Baklava Dilimi Çizdirme
C Armstrong Sayıyı Kontrol Eden Program
C Sayının Basamaklarının Toplayan Program
C Palidrom Sayıyı Bulan Program
C Sayıyı Tersten Yazdıran Program
C * Karakteri ile Piramit Oluşturma
C * Kullanarak Ters Üçgen Çizme
C Rakamları Kullanarak Üçgen Çizimi
C Dairenin Çevresini ve Alanının Hesaplayan Program
C Eşkenar Üçgenin Alanı ve Çevresini Hesaplayan Program
2 Yorum