ghostrecon
Hectopat
- Katılım
- 18 Şubat 2017
- Mesajlar
- 10
Daha fazla
- Cinsiyet
- Erkek
Clion programında yazdığım kodda 10^2 işlemini 99 olarak buluyor. Sorunun ne olduğunu bulamadım. Yardım eder misiniz? (Programlama dili olarak C kullanıyorum.)
Fonksiyonun ismine takılmayın, kitapta böyle yazıyor.
Break pointi, sayi değişkeninin ve baslangic değişkeninin oraya koyarak Debug ederseniz 99 olarak bulduğunu göreceksiniz.
Not: Kodu, 2 PC'de de denedim, sonuç aynı.
C:
Kod
Yığını:
#include <stdio.h>
#include <math.h>
int enBuyukMulayim (int basamak)
{
int sayi = 0;
int sayiBasamak[10];
int sayiDeger = 0;
int enBuyukMulayim = 0;
int baslangic;
int bitis;
int sayi3 = pow(10,2);
sayi = (int)pow(10, (basamak - 1));
baslangic = pow(10, basamak - 1);
bitis = pow(10, basamak);
while (baslangic <= sayi && sayi < bitis)
{
int sayi2 = sayi;
int i = 0;
while (sayi2 != 0)
{
sayiDeger = sayi2 % 10;
sayi2 /= 10;
sayiBasamak = sayiDeger;
i++;
}
int toplam = 0 ;
int carpim = 1;
int sonuc;
for (int j = 0; j < basamak; j++)
{
toplam += sayiBasamak[j];
carpim *= sayiBasamak[j];
}
sonuc = toplam * carpim;
if (sonuc == sayi )
{
printf("mulayim sayi :%d\n",sayi);
if (sayi > enBuyukMulayim)
{
enBuyukMulayim = sayi;
}
}
sayi++;
}
return enBuyukMulayim;
}
int main()
{
int basamak;
printf("kac basamakli bir mulayim sayi aranacak:");
scanf("%d", &basamak);
int sonuc = enBuyukMulayim(basamak);
if (sonuc == 0)
printf("yok");
else
printf("en buyuk mulayim :%d",sonuc);
return 0;
}
Fonksiyonun ismine takılmayın, kitapta böyle yazıyor.
Break pointi, sayi değişkeninin ve baslangic değişkeninin oraya koyarak Debug ederseniz 99 olarak bulduğunu göreceksiniz.
Not: Kodu, 2 PC'de de denedim, sonuç aynı.
Son düzenleyen: Moderatör: