C Programlama dili sayıyı basamaklarına ayırma ve istenilen basamaktaki değeri ekrana yazdıran program kodu.
C Programlama dilinde kullanıcının girdiği sayıyı basamaklarına ayırma programının kodu. Bu kod sayesinde basamak işlemleriyle ilgili her türlü algoritmayı kolaylıkla çözebilirsiniz.
- Kullanıcının sayı girmesi istenilir,
- Girilen Sayının Mod 10’u alınarak ekrana yazdırır,
- Daha sonra sayı 10’a bölünerek bu işlem basamak bitene kadar yapılır,
- S 0 olduğunda program sonlandırılır.
C Programlama Dili Sayıyı Basamaklarına Ayırma:
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
|
#include <stdio.h>
#include <conio.h>
/*Girilen sayıyı basamaklarına ayırma
Cemalettin Serit ckaynak.com | teknooneri.com | cemserit.com | wpeklentiler.com */
int main(){
int sayi, gecici, sonuc=0, kalan;
printf("Sayi Giriniz: ");
scanf("%d", &sayi);
gecici = sayi;
//Gecici 0 olana kadar döngü devam etsin
while ( gecici > 0 ){
kalan = gecici % 10;
gecici /= 10;
printf("%d\n", kalan);
}
getch();
return 0;
}
|
Yukarıda ki koda bir kaç değişiklik yapılarak kullanıcının hangi basamağı göstermek istediğini de bulabiliriz.
- Kullanıcı sayı girer,
- Göstermek istediği basamağı girer,
- Eğer o basamak var ise o basamakta ki rakam gösterilir.
(Programın sorunsuz çalışabilmesi için kodda biraz değişiklik yapmak zorunda kaldım. Koda ‘kontrol’ değişkeni ekledim. Ayrıca fazladan basamak girildiğinde hata almaması için döngü sonunda sayacı 10’a bölmek zorunda kaldım.)
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
|
#include <stdio.h>
#include <conio.h>
/*Girilen sayıdaki istenilen basamaktaki değeri ekrana yazdırma
Cemalettin Serit ckaynak.com | teknooneri.com | cemserit.com | wpeklentiler.com */
int main(){
int sayi, gecici, sonuc=0, kalan, sayac=1, basamak, kontrol = 0;
printf("Sayi Giriniz: ");
scanf("%d", &sayi);
printf("Bulmak istedigini basamak degeri\n(1, 10, 100, 1000 vs seklinde girilmesi gerekli): ");
scanf("%d", &basamak);
// Basamak değerini göstermek için sayının 0 ya da 0 dan büyük bir değer olması gerekli ve
// Basamak değerinin 1, 10 ve 10'un katları girilmesi gerekli!!!
if( (basamak % 10 == 0 || basamak == 1) && sayi >= 0){
gecici = sayi;
if(gecici == 0 && basamak == 1){
printf("%d", gecici);
kontrol = 1;
sayac *= 10;
}
while ( gecici > 0 ){
kalan = gecici % 10;
gecici /= 10;
if(sayac == basamak){
printf("%d", kalan);
kontrol = 1;
break;
}
sayac *= 10;
}
sayac /= 10;
}
else{
if(sayi < 0)
printf("Lutfen 0 ya da pozitif bir sayi giriniz!!!");
printf("Basamak degerini 1, 10, 100, 1000 vs seklinde olmasi gerekli!!!");
getch();
return 0;
}
if(sayac < basamak && kontrol == 0)
printf("Aradiginiz Basamak Bulunamadi!!!");
getch();
return 0;
}
|