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?..
#include <stdio.h> #define SIZE 10 int main(void) { int a[SIZE]; int sum, i; double avg; for (i = 0; i < 10; ++i) scanf("%d", &a[i]); sum = 0; for (i = 0; i < SIZE; ++i) sum += a[i]; avg = sum / SIZE; return 0; }
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;
CSD C ve Sistem Programcıları Derneği