10.3 Dizileri Yazdırma/Okuma
10.3 Dizileri Yazdırma/Okuma
printf ve scanf fonksiyonları bir dizinin okunması ve yazdırılması için de kullanılır. Örneğin bir A dizisinin aşağıdaki gibi bildirildiğini varsayalım:
1 |
int A[10]; |
Bu dizinin elemanlarını klavyeden okumak için:
1 2 |
for(i=0; i<10; i++) scanf("%d",&A[i]); |
daha sonra bu değerlerini ekrana yazmak için:
1 2 |
for(i=0;i<10;i++) printf("%d\n",A[i]); |
Program 10.1, klavyeden girilen N = 10 adet sayının ortalamasını hesaplar. Ortalama formülü ile hesaplanabilir.
Program 10.1: 10 sayının ortalamasını hesaplar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* 10prg01.c: 10 tamsayının aritmetik ortalamasını hesaplar */ #include <stdio.h> #define N 10 int main() { int i; float x[N], ort, toplam = 0.0; for(i=0; i<N; i++) { /* i. eleman okunuyor ... */ printf("%d. sayi : ",i+1); scanf("%f",&x[i]); toplam += x[i]; } ort = toplam/N; printf("Sayilarin ortalamasi = %f\n",ort); return 0; } |
ÇIKTI
1 2 3 4 5 6 7 8 9 10 11 |
1. sayi : 1 2. sayi : 0 3. sayi : 9 4. sayi : 7 5. sayi : 2 6. sayi : 10 7. sayi : 11 8. sayi : 4 9. sayi : 6 10. sayi : 5 Sayilarin ortalamasi = 5.500000 |
Bu programda, ortalaması alınacak sayılar adı x olan 10 elemanlı tamsayı tipindeki bir dizide saklanmıştır. Bu şekilde saklanan sayıların hepsi program çalıştığı sürece bellekte kalacaktır. Bu sayede, program içinde daha sonra (gerektiğinde) aynı sayılar tekrar kullanılabilir. Bu program, dizi kullanmadan da yazılabilirdi. Fakat, bazı hallerde dizi kullanmak kaçınılmaz olur.
Porgram 10.2, n = 10 tane sayının ortalamasını ve standart sapmasını hesaplar. Standart sapma,
formülü ile hesaplanabilir. Burada,
Program 10.2: 10 sayının ortalamasını ve standart sapmasını hesaplar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/* 10prg02.c 10 tane sayının aritmetik ortlamasını ve standart sapmasını hespalar. */ #include <stdio.h> #include <math.h> #define N 10 int main(void) { int i; float x[N], toplam = 0.0, ort, std_sap = 0.0; /* ortalama hesabı */ for(i=0; i<N; i++) { printf("%d. sayi : ",i+1); scanf("%f",&x[i]); toplam += x[i]; } ort = toplam/N; /* standart sapma hesabı */ for(toplam = 0.0, i=0; i<N; i++) toplam += pow(x[i]-ort, 2.0); std_sap = sqrt( toplam/(N-1) ); printf("Ortalama = %f\n",ort); printf("Standart sapma = %f\n",std_sap); return 0; } |
ÇIKTI
1 2 3 4 5 6 7 8 9 10 11 12 |
1. sayi : 7 2. sayi : 8 3. sayi : 9 4. sayi : 6 5. sayi : 5 6. sayi : 8 7. sayi : 8 8. sayi : 10 9. sayi : 11 10. sayi : 6 Ortalama = 7.000000 Standart sapma = 2.054805 |