Gönderen Konu: [Yardım] Sayının Kaç Basamağı 7?  (Okunma sayısı 1384 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı boraalper4

  • İleti: 65
[Yardım] Sayının Kaç Basamağı 7?
« : 19 Haziran 2012 - 09:32:20 »
Başlık saçma oldu ama soru da saçma:

"Bir tam sayı alan ve bu tam sayının basamaklarının kaç tanesinin 7 olduğunu bulan bir program yazınız"



Ben de bu alıştırmayı çözmek için şöyle bir şey yazdım:
Kod: [Seç]
#include <stdio.h>

int main(){
int sayi, sayi2, kacBasamak, i, kacYedi=0;

printf ("Bir sayı girin: ");
scanf ("%d", &sayi);

sayi2 = sayi;

while(sayi2>0){
   kacBasamak++;
   sayi2/=10;}
   
   int dizi[ kacBasamak ];

for (i = 1; i < kacBasamak+1; i++){
   dizi[i] = sayi % 10;
   sayi = (sayi - dizi[i]) / 10;}

for (i = 1; i < kacBasamak+1; i++){
   if(dizi[i] == 7)
      ++kacYedi;}
     
printf ("Sonuç: %d", kacYedi);

return 0;}


Kodu derlediğimde bir hata almıyorum ancak çalıştırırken "Segmentation fault" hatasını veriyor.
Kod: [Seç]
Bir sayı girin: 123497
./geany_run_script.sh: line 5: 2990 Segmentation fault              "./deneme"
----------------------------
(program exited with code: 139)


Nerede hata yapıyorum?
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »

Çevrimdışı alorak

  • İleti: 26
Re: [Yardım] Sayının Kaç Basamağı 7?
« Yanıtla #1 : 19 Haziran 2012 - 12:01:53 »
kacBasamak değişkenini tanımlarken en başta 0'a da eşitlersen sorun ortadan kalkıyor.


Kod: [Seç]
int kacBasamak=0
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »
özgürlük için..

Çevrimdışı boraalper4

  • İleti: 65
Re: [Yardım] Sayının Kaç Basamağı 7?
« Yanıtla #2 : 19 Haziran 2012 - 13:28:06 »
Teşekkür ederim. :)
« Son Düzenleme: 01 Ocak 1970 - 02:00:00 Gönderen: Guest »