neo
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
27.12.2011
-
Yaş/Cinsiyet
- /
-
Meslek
-
Konum
-
Ad Soyad
** **
-
Mesajlar
28
-
Beğeniler
12 / 1
-
Ticaret
2, (%50)
Arkadaşlar elimde böyle bir kod var.Bu kod girilen sayıyı basamaklarına ayırıyor.İnternetten buldum ben bunu.Kodda sorun yok çalışıyor fakat her satırın ne işe yaradığını açıklama satırı ile yazmam gerekiyor.Bu konuda bana yardımcı olabilecek var mı ?
#include
#include
#include
int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi;
printf("Bir sayi giriniz:");
scanf("%d",&sayi);
while(sayi!=0)
{
if(sayi>10000 && sayi<3853000)
{
yuzbinler=sayi/100000;
onbinler=(sayi/10000)%10;
binler=(sayi/1000)%10;
yuzler=(sayi/100)%10;
onlar=(sayi/10)%10;
birler=sayi%10;
printf("%d*100000 + ",yuzbinler);printf("%d*10000 + ",onbinler);printf("%d*1000 + ",binler);printf("%d*100 + ",yuzler);printf("%d*10 + ",onlar);printf("%d*1",birler);
}
else printf("yanlis deger");
break;
}
getch();
}
-
Üyelik
25.07.2013
-
Yaş/Cinsiyet
32 / E
-
Meslek
Muhabir,Muhasebeci,Fotoğrafçı,
-
Konum
Ağrı
-
Ad Soyad
Ç** Ç**
-
Mesajlar
219
-
Beğeniler
53 / 54
-
Ticaret
12, (%100)
Bir c# olarak cevapladım :( umarım doğrudur ve işini görür
#include
#include
#include
int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi;
printf("bir sayi giriniz:");
scanf("%d",&sayi); //ekrana girilen sayı
while(sayi!=0) //sayı sıfır a eşit değilse
{
if(sayi>10000 && sayi<3853000) //sayı 10000 veya 3853000 arasında ise aşağıdaki işlemleri yap
{
yuzbinler=sayi/100000; sayının basamağını bölerek buluyor
onbinler=(sayi/10000)%10; sayının basamağını bölerek buluyor
binler=(sayi/1000)%10; sayının basamağını bölerek buluyor
yuzler=(sayi/100)%10; sayının basamağını bölerek buluyor
onlar=(sayi/10)%10; sayının basamağını bölerek buluyor
birler=sayi%10; sayının basamağını bölerek buluyor
printf("%d*100000 + ",yuzbinler);printf("%d*10000 + ",onbinler);printf("%d*1000 + ",binler);printf("%d*100 + ",yuzler);printf("%d*10 + ",onlar);printf("%d*1",birler); bamakları bulmak için bir kaç ufak işlem umarım bunu biliyorsundur. Kolay
}
else printf("yanlis deger"); sayı 0(sıfır) ise bunu yapıyor
break; sanıtım bitir döngüden çık anlamına geliyor
}
getch(); bunu bilmiyorum
}
trgy
Mühendis
Kullanıcı
-
Üyelik
22.12.2010
-
Yaş/Cinsiyet
34 / E
-
Meslek
Mühendis
-
Konum
Macaristan
-
Ad Soyad
T** Y**
-
Mesajlar
390
-
Beğeniler
32 / 209
-
Ticaret
16, (%100)
c++ degil bu c. yukaridaki arkadas yanlis yazmis aciklamalari ayrica.
#include
#include
#include
int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi; //integer olusturduk
printf("Bir sayi giriniz:"); //ekrana bir sayi giriniz yazdirdik
scanf("%d",&sayi); //kullanicidan bir deger almak ve bu degerin girilip girilmedigini kontrol etmek icin scanf kullandik.
while(sayi!=0) //kullanicidan girilen deger 0 degilse while dongusunu isleme aldirdik.
{
if(sayi>10000 && sayi<3853000) // sayi 10 00 ile 3853000 arasindaysa if kosulunun icerisindeki islemleri gerceklestirdik.
{
yuzbinler=sayi/100000; //yuzbinler degiskenine sayi/100000 degerini atadik.
onbinler=(sayi/10000)%10; //onbinler degiskenine (sayi/10000) in mod 10 degerinini atadik.
binler=(sayi/1000)%10; //binler degiskenine (sayi/1000) in mod 10 degerinini atadik.
yuzler=(sayi/100)%10; //yuzler degiskenine (sayi/100) un mod 10 degerinini atadik.
onlar=(sayi/10)%10; //onlar degiskenine (sayi/10) un mod 10 degerinini atadik.
birler=sayi%10; //birler degiskenine sayi degiskeninin mod 10 degerinini atadik.
printf ("%d*100000 + ",yuzbinler); // yuzbinler degiskenini 100 000 ile carptik ve ekrana yazdirdik.
printf("%d*10000 + ",onbinler); // onbinler degiskenini 10000 ile carptik ve ekrana yazdirdik.
printf("%d*1000 + ",binler); // binler degiskenini 1000 ile carptik ve ekrana yazdirdik.
printf("%d*100 + ",yuzler); // yuzler degiskenini 100 ile carptik ve ekrana yazdirdik.
printf("%d*10 + ",onlar); // onlar degiskenini 10 ile carptik ve ekrana yazdirdik.
printf("%d*1",birler); // birler degiskenini 1 ile carptik ve ekrana yazdirdik.
}
else printf("yanlis deger"); // sayi 10 00 ile 3853000 arasinda degilse ekrana yanlis deger yazdirdik.
}
getch(); // bu fonksiyonu ise ekranda programin sabit kalmasi icin kullaniriz. yani bu getch() fonksiyonunu kaldirdiginda program calisir ama saliseler icerisinde ekrandan kaybolur ve ekranda programin calistigini goremezsin.
}
Programda ek ozellik istiyorsan sorabilirsin yapabilirim. Benden sana oneri;
C programlama dersini iyi ogren programlamanin temelidir ve herseyi sana ogretir. En ufak bir hatada bile can sikabilir ama diger programlama dillerini ogrenmeye basladiginda bunlar ne kadar kolaymis dedirtir.
1 kişi bu mesajı beğendi.
neo
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
27.12.2011
-
Yaş/Cinsiyet
- /
-
Meslek
-
Konum
-
Ad Soyad
** **
-
Mesajlar
28
-
Beğeniler
12 / 1
-
Ticaret
2, (%50)
Arkadaşlar hepinize çok çok teşekkür ederim
-
Üyelik
25.06.2012
-
Yaş/Cinsiyet
38 / E
-
Meslek
Engineering Director
-
Konum
İstanbul Avrupa
-
Ad Soyad
T** C**
-
Mesajlar
771
-
Beğeniler
2 / 260
-
Ticaret
0, (%0)
getch(); bunu bilmiyorum
Burada konsolda printf ile yazdırılan outputları görmek için kullanılmış. Derleyici işlemleri yaptıktan sonra getch(); fonksiyonu ile ekrana bir karakter girilmesini bekler girildiğinde programa devam eder burada ise konsol'u kapatır.
%10 ile mod alıyor lakin int değerlerde %10 mod'u niye alınır zaten 10'luk sistemde işlem yapıyor.
https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
-
Üyelik
13.06.2012
-
Yaş/Cinsiyet
31 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
B** Ç**
-
Mesajlar
396
-
Beğeniler
82 / 125
-
Ticaret
3, (%100)
#include//Cout ve cin gibi metodların tutulduğu header file
#include//system("pause") metodunun tutulduğu header file
using namespace std;
int main()
{
int birler,onlar,yuzler,binler,onbinler,yuzbinler,sayi; //integer olusturduk
cout <<"Bir sayi giriniz:"; //ekrana bir sayi giriniz yazdirdik
cin >> sayi; //kullanicidan bir deger almak ve bu degerin girilip girilmedigini kontrol etmek icin cin kullandik.
if(sayi>10000 && sayi<3853000) // sayi 10000 ile 3853000 arasindaysa if kosulunun icerisindeki islemleri gerceklestirdik.
{
yuzbinler=sayi/100000; //yuzbinler degiskenine sayi/100000 degerini atadik.
onbinler=(sayi/10000)%10; //onbinler degiskenine (sayi/10000) in mod 10 degerinini atadik.
binler=(sayi/1000)%10; //binler degiskenine (sayi/1000) in mod 10 degerinini atadik.
yuzler=(sayi/100)%10; //yuzler degiskenine (sayi/100) un mod 10 degerinini atadik.
onlar=(sayi/10)%10; //onlar degiskenine (sayi/10) un mod 10 degerinini atadik.
birler=sayi%10; //birler degiskenine sayi degiskeninin mod 10 degerinini atadik.
cout << yuzbinler << "*100000 + "; // yuzbinler degiskenini 100 000 ile carptik ve ekrana yazdirdik.
cout << onbinler << "*10000 + " ; // onbinler degiskenini 10000 ile carptik ve ekrana yazdirdik.
cout << binler << "*1000 + " ; // binler degiskenini 1000 ile carptik ve ekrana yazdirdik.
cout << yuzler << "*100 + " ; // yuzler degiskenini 100 ile carptik ve ekrana yazdirdik.
cout << onlar << "*10 + " ; // onlar degiskenini 10 ile carptik ve ekrana yazdirdik.
cout << birler << "*1" ; // birler degiskenini 1 ile carptik ve ekrana yazdirdik.
}
else
cout << "yanlis deger"; // sayi 10 00 ile 3853000 arasinda degilse ekrana yanlis deger yazdirdik.
cout << "\n";
system("pause"); // bu fonksiyonu ise ekranda programin sabit kalmasi icin kullaniriz. yani bu system("pause") fonksiyonunu kaldirdiginda program calisir ama saliseler icerisinde ekrandan kaybolur ve ekranda programin calistigini goremezsin.
return 0;//Programdan basariyla cikildi
}
@trgy nin verdiği koda ufak eklemeler ve bir düzeltme yaptım.
İyi çalışmalar.
1 kişi bu mesajı beğendi.