Skip to main content

C’de Girilen Sayıyı Basamaklara Ayırma

Hiç  telesekreterlerin  girdiğin mumaraları nasıl okuduğunu düşündünüz mü  ?  Siz 12345 diye bir sayı girdikten sonra telefonun karşı ucundaki  telesekreterin size o sayiyi 12 Bin 300 Yüz 45 diye okuduğunu hayal edin. Aslında etmenize de gerek yok çünkü tam olarak bu zaten yapılıyor. Hatta  dikkat çeken başka  bir noktada telesekreterin direk 345 demek yerine sayıyı  “Üç yüz , kırk,  beş ”  seklinde okuması. Yani  basamak değerlerini ele alarak bir okuma yapıyor.  Az sonra paylasacağım  C kodu bu mantığı anlayabilmenizi sağlayan bir kod olacaktır. Bu paylastığım kod üzerine Ses dosyaları ekleyerek aynı etkiyi sizde elde edebilirsiniz.  Fakat paylastığım kod sadece girilen 5 basamaklı sayıyı  basamaklara ayıracaktır.

Örneğin sayı olarak  12345 girdiğimizi varsayarsak  program bize   1   2    3    4    5 şeklinde bir çıktı verir. Gördüğünüz gibi çıktıda pek fark gözükmemekte. Burada amaç sayıları basamaklandırabilmektir. Çıktıyı değiştirmek değildir.

Aşağıda ki program girilen 5 basamaklı bir sayıyının tüm basamaklarını ayrı ayrı yazar.

 

/**
/**
/*
  Name: Sayiyi Basamaklara Ayır
  Copyright:  Hiç bir hakkı saklı değildir =) 
  Author:  Aytaç CİCİ
  Date: 15.11.11 00:17
  Description: Bu program klavyeden bir sayi girişi ister eğer girilen sayı 5 basamaklı ise onu basamaklarını ayrı ayrı yazar
  Aslında bu tip bir  programı C programlama dilinde Copy fonksiyonu kullanarak cok rahat bir sekilde yazabilirdik. Ama henüz o konulara
  gelmediğimizden bu şekilde bir çözüm yöntemi geliştirdim. Güzel bir soru olduğunun altını çizmem gerek :) 
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i;
int sayi;
int onbinler,binler,yuzler,onlar,birler;
printf("5 Basamakli bir Sayi giriniz :");
scanf("%d",&sayi);
if(sayi>=10000 && sayi<=99999)
{
/*Diyelim ki sayimiz 12345 . Birler basamagını bulmak için sayimizi ilk o
larak sayimizi 10000 e bölmemiz gerekecek*/
onbinler=sayi/10000;  // Burada on binler basamagını bulduk.
/** Şimdi sayının binler basamagını bulalım */
sayi=sayi-(onbinler*10000);  // 12345-1000=2345 gibi bir sonuc bulduk 
binler=sayi/1000;  // Sonuc olarak (12345-1000)/1000 = 2 ;
// Şimdi unutmmanız gereken sayımız artık 12345 değil 2345 tir ;) 
sayi=sayi-(binler*1000);  //  2345-(2*100) =  345  kaldı  
yuzler=sayi/100;  // 345/100 = 3 
// Artık sayımız 345   onlar basamagını bulmak için
sayi=sayi-(yuzler*100); // 345-(3*100) = 45
onlar=sayi/10;     // 45 / 10 =4 
// Şimdi sayinin birler basamagını yazdıralim.
sayi=sayi-(onlar*10);  //45-40 = 5
birler=sayi;
printf("%d\t%d\t%d\t%d\t%d\n",onbinler,binler,yuzler,onlar,birler);
}
else
printf("Girdigin Sayinin 5 basamakli olduguna emin misin ? --->  :) \n");
system("PAUSE");   
}

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Aytaç Cici

İstanbul Üniversitesi Bilgisayar Mühendisliği mezunu bir Yazılım Geliştirici. Çeşitli zamanlarda Java, PHP, C# ve Delphi gibi diller kullanarak yazılım geliştirmiştir. Bir dönem SEO alanında da çalışmalar yapmıştır.

C’de Girilen Sayıyı Basamaklara Ayırma” hakkında 5 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Email
Print