c de bir program derlemek

Başlatan bekir, 06 Aralık 2009 - 15:55:26

« önceki - sonraki »

0 Üyeler ve 4 Ziyaretçi konuyu incelemekte.

bekir

C de girdiğimiz bir sayının basamak değerini nasıl alırız? Diyelimki 425 yazdık 3 yazsın 3091 dediğimizde 4 gibi.
sistemin dayattıkları çöpe...
yeni ülke, yeni işletim sistemi.

raspacı

Şu adreste var bişey: http://www.turkforum.net/showthread.php?t=749614
C bilmem ama mantık şu oluyor:Bir değişken belirle, Sayıyı 10'a böl sayı 0 olana kadar devam et, her seferinde değişkeni bir artır. Sonunda değişken değeri basamak sayısını verir gibi.
nereye gidersen git kendini de götürürsün.

utdmr

#2
Alıntı yapılan: bekir - 06 Aralık 2009 - 15:55:26
C de girdiğimiz bir sayının basamak değerini nasıl alırız? Diyelimki 425 yazdık 3 yazsın 3091 dediğimizde 4 gibi.
Belki C++ eşdeğerini söylersem C'ye çevirebilirsiniz.

#include <cmath>
...
int basamaksayisi=0;
int sayi=2345;

for(unsigned int i=0;say>i;i=pow(i,10)){
if(sayi>i) basamaksayisi++;
}

gibi bir kod olur sanırım...

Edit: Sorun var bir yerde ama çözemedim, deniyorum...

Son edit: Oldu sanırım şimdi:


#include <iostream>
#include <cmath>

using namespace std;

int main(){

int basamaksayisi=3;
unsigned int sayi=2345;
unsigned int deger;

for(unsigned int i=2;;i++){

deger=pow(i,10);

if(sayi<deger)break;

basamaksayisi++;
}

cout<<basamaksayisi<<endl;

return 0;
}
Kişisel Blogum: Çoğunlukla Zararsız - cogunluklazararsiz.org
--
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -and a lot of courage- to move in the opposite direction.