
C Programlama Örnekleri 2
Örnek 21
Girilen sayının mükemmel sayı olup olmadığını bulan program
Kendisi hariç bütün pozitif bölenlerinin toplamı kendisine eşit olan sayılara mükemmel sayı denir.
#include <stdio.h>
int main(void){
int sayi;
int toplam=0;
printf("sayi giriniz:");
scanf("%d", &sayi);
for (int i = 1; i < sayi; i++){
if (sayi%i == 0){
toplam += i;
}
}
if (sayi == toplam){
printf("%d mukemmel sayidir.", sayi);
}
else{
printf("%d mukemmel sayi degildir.", sayi);
}
return 0;
}
Örnek 22
Aylık maaşı 5000 tl, aylık verdiği vergi %15 olan bir çalışanın
geliri yıl içinde 20000 tl’yi geçince verdiği vergi %20’dir.
Bu çalışan yil sonunda kaç lira almış, kaç lira vermiştir?
#include <stdio.h>
int main(void) {
float maas = 5000;
float vergi1 = 0.15;
float vergi2 = 0.20;
float tvergi, gelir; //toplam vergi , toplam gelir
int i;
for(i=1; i<=12; i++ ){
if (gelir < 20000){
tvergi += maas*vergi1;
gelir += maas-maas*vergi1;
printf("%d. Ay sonundaki\n Gelir: %g tl\n Vergi: %g tl \n", i, gelir, tvergi);
}
else{
tvergi += maas*vergi2;
gelir += maas-maas*vergi2;
printf("%d. Ay sonundaki\n Gelir: %g tl\n Vergi: %g tl \n", i, gelir, tvergi);
}
}
printf("\nYillik Gelir: %g tl\n", gelir);
printf("Yillik Vergi: %g tl", tvergi);
return 0;
}
Örnek 23
Girilen harf notuna göre geçme durumunu gösteren kod
#include <stdio.h>
int main(void) {
char grade;
printf("Harf notu girin:");
scanf("%c",&grade);
switch(grade){
case 'A':
case 'B':
case 'C': printf("Gecti");
break;
case 'D': printf("Kosullu gecti");
break;
case 'F': printf("Kaldi");
break;
default: printf("Gecerli bir harf girilmedi");
}
return 0;
}
Örnek 24
Girilen süreye göre seçilen taşıtın ücretlerini hesplayan kod
#include <stdio.h>
int main(void) {
char tur;
int saat, ucret;
printf("Otobus icin: o\nkamyonet icin: k\nmotosiklet icin: m\n >>>");
scanf("%c",&tur);
printf("Sure\n >>>");
scanf("%d",&saat);
switch(tur){
case 'o':
ucret = 30;
printf("Otobus sectiniz \n");
printf("Odeneck ucret: %d", ucret*saat);
break;
case 'k':
printf("Kamyonet sectiniz \n");
ucret = 20;
printf("Odeneck ucret: %d", ucret*saat);
break;
case 'm':
printf("Motosiklet sectiniz \n");
ucret = 10;
printf("Odeneck ucret: %d", ucret*saat);
break;
default: printf("Yanlis arac kodu girdiniz");
}
return 0;
}
Örnek 25
Switch-case örneği
#include <stdio.h>
int main(void){
char takim;
printf("Lutfen bir karakter (b,f,g) giriniz:");
scanf("%c", &takim);
switch (takim){
case 'f':
printf("fenerbahce\n");
break;
case 'b':
printf("besiktas\n");
break;
case 'g':
printf("galatasaray\n");
break;
default:
printf("b,f,g karakterlerinden birisini girmediniz\n");
break;
}
return 0;
}
Örnek 26
10 elemanlı bir dizi oluşturup, tek sayıları bu diziye ekleyen kod.
#include <stdio.h>
int main(void) {
int n[10];
int j, i;
for (i= 0; i<10; i++){
n[i] = 2*i+1;
}
for (j=0; j<10; j++){
printf("Element %d = %d\n", j, n[j]);
}
return 0;
}
Örnek 27
100’den 110’a kadar sayıları bir diziye, karelerini farklı bir diziye ekleyen daha sonra bu dizilerin elemanlarını yazdıran yazdıran kod
#include <stdio.h>
int main(void) {
int n[10];
int m[10];
int j, i;
for (i= 0; i<=10; i++){
n[i] = i+100;
m[i] = (i+100)*(i+100);
}
for (j=0; j<=10; j++){
printf("Dizi: %d\n", n[j]);
printf("Karesi: %d\n\n", m[j]);
}
return 0;
}
Örnek 28
ilk 10 asal sayiyi diziye ekleyen kod
#include <stdio.h>
int main(void){
int i, j, k =0;
int tf = 0;
int n[10];
for(i=2; i<200; i++){
for(j=1;j<=i;j++){
if(i%j==0){
tf++;
}
}
if(tf == 2){
tf=i;
printf("%d. asal sayı: %d \n", k+1, tf);
n[k] = tf;
k+=1;
if (k == 10){
break;
}
}
tf=0;
}
return 0;
}
Örnek 29
İki boyutlu dizi örneği
#include <stdio.h>
int main(void) {
int n[10][2];
int j, i;
for (i= 0; i<10; i++){
for (j=0; j<2; j++){
if (j){
n[i][j] = (i+100)*(i+100);
}
else{
n[i][j] = 100+i;
}
printf("[%d][%d] : %d\n", i,j, n[i][j]);
}
}
return 0;
}
Örnek 30
İki boyutlu dizi örneği 2
#include <stdio.h>
int main(void) {
int n[10][3];
int j, i;
for (i= 0; i<10; i++){
for (j=0; j<3; j++){
if (j ==0){
n[i][j] = 100+i;
}
else if(j==1){
n[i][j] = (i+100)*(i+100);
}
else{
n[i][j] = (i+100)*(i+100)*(i+100);
}
printf("n[%d][%d] = %d\n", i, j, n[i][j]);
}
}
return 0;
}
Örnek 31
Bir kelimenin tersten yazılışını veren kod
#include <stdio.h>
#include <string.h>
int main(void) {
char kelime[] = "merhaba";
for (int i=strlen(kelime); i>=0; i--){
printf("%c",kelime[i]);
}
return 0;
}
Örnek 32
Bir değişkenin değerini ve adresin yazdıran kod (işaretçi örneği)
#include <stdio.h>
int main(void) {
int var = 21;
int *ip;
ip = &var;
printf("var degiskenin adresi: %p\n", &var);
printf("ip işaretçi adresi: %p\n",ip);
printf("var degiskenin degeri: %d\n",*ip);
return 0;
}
Örnek 33
Bir değişkenin değerini işaretçi yardımıyda bastıran-değiştiren kod
#include <stdio.h>
int main()
{
int *pc, c;
c = 22;
printf("c degisken adresi: %p\n", &c);
printf("c degisken degeri: %d\n\n", c);
pc = &c;
printf("pc isaretci(pointer) adresi: %p\n", pc);
printf("pc isaretci(pointer) icerigi: %d\n\n", *pc);
c = 11;
printf("pc isaretci(pointer) adresi: %p\n", pc);
printf("pc isaretci(pointer) icerigi: %d\n\n", *pc);
*pc = 2;
printf("c degisken adresi: %p\n", &c);
printf("c degisken degeri: %d\n\n", c);
return 0;
}
Örnek 34
Özyinelemeli (recursive) fonksiyon ile faktöriyel hesaplama
#include<stdio.h>
int fact(int n);
int main(void){
int sayi;
printf("Faktoriyeli hesaplanacak sayi:");
scanf("%d",&sayi);
printf("%d! = %d", sayi, fact(sayi));
return 0;
}
int fact(int n){
int sonuc = (n)? n*fact(n-1): 1;
return sonuc;
}
Örnek 35
Bir cümledeki kelimeleri sondan başlayarak yazdıran kod
#include <stdio.h>
#include <string.h>
int main(void) {
char cumle[] = "Kiyiya vurmadikları surece, baliklar suyun farkinda degildirler";
for (int i=strlen(cumle); i >= 0; i--){
if (cumle[i] == ' '){
cumle[i] = '\0';
printf(" %s", &cumle[i]+1);
}
}
printf(" %s",cumle);
return 0;
}
Örnek 36
Öğrencinin adını, soyadını ve numarasını tutan struct yapısı
#include <stdio.h>
#include <string.h>
struct ogrenci {
char isim[50];
char soyad[50];
int numara;
};
int main(void) {
struct ogrenci ogrenci1;
strcpy( ogrenci1.isim, "ozkan");
strcpy( ogrenci1.soyad, "celik");;
ogrenci1.numara = 418;
printf( "Ogrenci ismi : %s\n", ogrenci1.isim);
printf( "Ogrenci Soyadi : %s\n", ogrenci1.soyad);
printf( "Ogrenci numarası : %d\n", ogrenci1.numara);
return 0;
}
Örnek 37
Tanımlanan struct elemanlarının herhangi bir sıradaya göre başlatılmasını sağlamak.
#include <stdio.h>
struct Point {
int x, y, z;
};
int main( ) {
struct Point p1 = {.y = 0, .z = 1, .x = 2};
struct Point p2 = {.y = 6, .z = 7};
printf( "%d %d %d\n", p1.x, p1.y, p1.z);
printf( "%d %d\n", p2.y, p2.z);
return 0;
}
Örnek 38
Fonksiyon tanımlanarak bir sayının pozitif-negatif veya işaretsiz olma durumunu kontrol eden kod.
#include <stdio.h>
int sorgu(int x);
int main(void) {
int sayi;
printf("Bir sayi girin:");
scanf("%d", &sayi);
int sonuc = sorgu(sayi);
if (sonuc == 0)
printf("Sayi 0\n");
else if (sonuc == -1)
printf("Sayi negatif\n");
else if (sonuc == 1)
printf("sayi pozitif\n");
return 0;
}
int sorgu(int x){
if (x==0)
return 0;
else if (x<0)
return -1;
else
return 1;
}
Örnek 39
Fonksiyon kullanarak struct verilerini yazdırmak
#include <stdio.h>
#include <string.h>
struct Kitaplar {
char isim[50];
char yazar[50];
char konu[100];
int barkod;
};
/* Fonksiyon prototipi tanimlama */
void kitaplariYazdir( struct Kitaplar kitap );
int main(void){
struct Kitaplar Kitap1; /* Kitap1 adli Kitabı Deklare etme */
struct Kitaplar Kitap2; /* Kitap2 adli Kitabı Deklare etme */
/* Kitap1 özellikleri */
strcpy( Kitap1.isim, "C Programlama Dili");
strcpy( Kitap1.yazar, "Dennis Ritchie");
strcpy( Kitap1.konu, "C Programlama Egitimi");
Kitap1.barkod = 65657098;
/* Kitap2 özellikleri */
strcpy( Kitap2.isim, "Python3");
strcpy( Kitap2.yazar, "Firat Ozgul");
strcpy( Kitap2.konu, "Python Programlama Egitimi");
Kitap2.barkod = 6495407;
/* Kitap1 bilgilerini yazdir */
kitaplariYazdir( Kitap1 );
/* Kitap2 bilgilerini yazdir */
kitaplariYazdir( Kitap2 );
return 0;
}
void kitaplariYazdir( struct Kitaplar kitap ) {
printf( "Kitap isimi : %s\n", kitap.isim);
printf( "Kitabin yazari : %s\n", kitap.yazar);
printf( "Kitabin konusu : %s\n", kitap.konu);
printf( "Kitabin barkod kodu : %d\n", kitap.barkod);
}