En üretken günlerimden biri, 1,000 satır kaynak kodu çöpe attığım gündü.

Ken Thompson

Böcek No: [3]
12 Ekim 2009 C - Genel

Aşağıdaki C programı klavyeden girilen int türden 10 sayının ortalamasını bulmak için yazılmış. Fakat program uygun sonucu vermiyor. Peki neden?..

Satır Numaralarını Gizle

  1. #include <stdio.h>
  2.  
  3. #define SIZE 10
  4.  
  5. int main(void)
  6. {
  7. int a[SIZE];
  8. int sum, i;
  9. double avg;
  10.  
  11. printf("%d sayi giriniz:\n", SIZE);
  12. for (i = 0; i < 10; ++i)
  13. scanf("%d", &a[i]);
  14.  
  15. sum = 0;
  16. for (i = 0; i < SIZE; ++i)
  17. sum += a[i];
  18.  
  19. avg = sum / SIZE;
  20.  
  21. printf("Ortalama = %f\n", avg);
  22.  
  23. return 0;
  24. }
  25.  
  26.  

Yanıtı Göster

sum nesnesi ve SIZE sembolik sabiti int türden olduğu için de sonuç int türden çıkar. Tür dönüştürme işleminden sonra bölme işlemi yapılarak böcek temizlenebilir:

avg = (double) sum / SIZE;

 

Haftanın Böceği Yukarı