Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bu küme matematikteki küme kavramından biraz farklıdır. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe saklanır [1]. Bu yüzden dizilere tek bir isim altında çok sayıda değişken içeren bellek bölgesi de denir. Buna göre, bir diziyi dizi yapan iki temel özellik vardır [2]:
- dizi elemanların bellekte (program çalıştığı sürece) sürekli biçimde bulunması
- dizi elemanların aynı türden değişkenler olması
10.1 Dizilerin Bildirimi
Bir dizi çok sayıda değişken barındırdığından, bunları birbirinden ayırdetmek için indis adı verilen bir bilgiye ihtiyaç vardır. C Programlama Dili'nde, bir dizi hangi tipte tanımlanmış olursa olsun başlangıç indisi her zaman 0'dır.
Bir dizinin bildirim işleminin genel biçimi söyledir: veriTipi dizi_adı[eleman_sayısı];Örneğin, 5 elemanlı, kütle verilerini bellekte tutmak için, kutle dizisi şöyle tanımlanabilir:
float kutle[5];Bu dizinin elemanlarına bir değer atama işlemi şöyle yapılabilir:
kutle[0] = 8.471
kutle[1] = 3.683
kutle[2] = 9.107
kutle[3] = 4.739
kutle[4] = 3.918
NOT1. elemanın indisi 0, |
Bildirim sırasında dizilerin eleman sayısı tamsayı türünden bir sabit ifadesiyle belirtilmesi zorunludur. Örneğin:
int n = 100;
int a[n];
şeklindeki tanımlama, dizi uzunluğunun değişken (n) ile belirtilmesi nedeniyle geçersizdir. Bunun yerine, dizilerin eleman sayısı aşağıdaki gibi sembolik sabitlerle belirtmek mümkündür.
#define n 100
...
int a[n];
Bir dizinin bellekte kapladığı alanın bayt cinsinden karşılığı sizeof operatörü ile öğrenilebilir.
int a[5], b, c;
...
b = sizeof(a); /* bellekte kapladığı alan: b = 4*5 = 20 bayt */
c = sizeof(a) / sizeof(int); /* Dizinin boyutu : c = 20/4 = 5 */
10.2 Dizilere Başlangıç Değeri Verme
Bir diziye başlangıç değerleri aşağıdaki gibi kısa formda atanabilir:
float kutle[5]= { 8.471, 3.683, 9.107, 4.739, 3.918 };
int maliyet[3] = { 25, 72, 94 };
double a[4] = { 10.0, 5.2, 7.5, 0.0};
Küme parantezlerinin sonlandırıcı ; karakteri ile bittiğine dikkat ediniz.
Bir dizinin uzunluğu belirtilmeden de başlangıç değeri atamak mümkündür.
int a[] = { 100, 200, 300, 400 };
float v[] = { 9.8, 11.0, 7.5, 0.0, 12.5};
Derleyici bu şekilde bir atama ile karşılaştığında, küme parantezi içindeki eleman sayısını hesaplar ve dizinin o uzunlukta açıldığını varsayar. Yukarıdaki örnekte, a dizisinin 4, v dizisinin 5 elemanlı olduğu varsayılır.
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:
int A[10];
Bu dizinin elemanlarını klavyeden okumak için:
for(i=0; i<10; i++)
scanf("%d",&A[i]);
daha sonra bu değerlerini ekrana yazmak için:
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
01:
02:
03:
04:
05:
06:
07:
08:
09:
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. 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
01:
02:
03:
04:
05:
06:
07:
08:
09:
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. 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
|
10.4 Sıralama (Sorting)
Bazı uygulamalarda bir grup sayının büyükten küçüğe, veya küçükten büyüğe, doğru sıralanması gerekebilir. Bu tip sıralama problemleri için çeşitli algoritmalar geliştirilmiştir. Sıralama mantığını anlamadan önce bir dizinin en büyük (veya en küçük) elemanının nasıl bulunduğunu inceleyelim. Program 10.3, bir dizinin en büyük elemanını bulup ekrana yazar.
Program 10.3: Bir dizinin en büyük elemanının bulunuşu
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
| /* 10prg03.c
Bir dizinin en büyük elemanını bulup ekrana yazar */
#include <stdio.h>
int main(void)
{
int a[10] = {100, -250, 400, 125 ,550, 900, 689, 450, 347, 700};
int k, eb;
/* ilk eleman en büyük kabul ediliyor */
eb = a[0];
for(k=1; k<10; k++)
if( a[k]>eb ) eb = a[k];
printf("En buyuk eleman = %d\n",eb);
return 0;
}
|
ÇIKTI
En buyuk eleman = 900
|
En büyük sayıyı bulan bu algoritma oldukça kolaydır. 12. satırda eb = a[0]; ataması ile dizinin ilk elemanının en büyük olduğu varsayılır. Daha sonra büyüğe rastladıkça (15. satır) eb = a[k]; ile eb değişmektedir.
Program 10.3 bir dizinin en büyük elemanını bulur. En büyük elemanın kaçıncı indis (eleman) olduğu sorgulanmak istendiğinde: programdaki koşul yapısını aşağıdaki gibi değiştirmek yeterlidir. eb değiştikçe, i değişkeni en büyük elemanın indisini tutar.
for(k=0; k<10; k++){
if( a[k] > eb ){
eb = a[k];
i = k;
}
}
n elemanlı bir dizinin, elemanlarını büyükten küçüğe doğru sıralamak için çok popüler iki algoritma aşağıda verilmiştir[2].
Seçerek Sıralama (Selection Sort):
En büyük elemanı bul başa koy biçimindeki sıramadır. Algoritmanın uygulaması Program 10.4'de gösterilmiştir.
Bu algoritmada kullanılan kombinasyon sayısı (algoritmanın karmaşıklığı): n*(n-1)/2 dir.
En büyük elemanı bul başa koy biçimindeki sıramadır. Algoritmanın uygulaması Program 10.4'de gösterilmiştir.
Bu algoritmada kullanılan kombinasyon sayısı (algoritmanın karmaşıklığı): n*(n-1)/2 dir.
Program 10.4: Seçerek Sıralama (Selection Sort) Algoritması
01:
02:
03:
04:
05:
06:
07:
08:
09:
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
| /* 09prg04.c
Seçerek Sıralama (Selection Sort) Algoritması ile bir
dizinin elemanlarını büyükten küçüğe dogru sıralar */
#include <stdio.h>
#define n 10
int main(void)
{
int a[n] = {100, -250, 400, 125 ,550, 900, 689, 450, 347, 700};
int i, j, k, eb;
/* Dizinin kendisi */
printf("Once : ");
for(k=0;k<n;k++)
printf("%5d ",a[k]);
/* Sırala */
for(k=0; k<n; k++){
eb = a[k];
i = k;
for(j=k+1; j<n; j++)
if( a[j]>eb ){
eb = a[j];
i = j;
}
a[i] = a[k];
a[k] = eb;
}
/* Sıralama bitti */
printf("\nSonra: ");
for(k=0; k<n; k++)
printf("%5d ",a[k]);
printf("\n");
return 0;
}
|
ÇIKTI
Once : 100 -250 400 125 550 900 689 450 347 700
Sonra: 900 700 689 550 450 400 347 125 100 -250
|
Kabarcık Sıralama (Bubble Sort):
Yanyana elemanları karşılaştırarak yer değiştir biçimde sıralamadır. Algoritmanın uygulaması Program 10.5'de gösterilmiştir.
Bu algoritmanın karmaşıklığı: (n-1)2 dir.
Yanyana elemanları karşılaştırarak yer değiştir biçimde sıralamadır. Algoritmanın uygulaması Program 10.5'de gösterilmiştir.
Bu algoritmanın karmaşıklığı: (n-1)2 dir.
Program 10.5: Kabarcık Sıralama (Bubble Sort) Algoritması
01:
02:
03:
04:
05:
06:
07:
08:
09:
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:
36:
| /* 09prg05.c
Kabarcık Sıralama (Bubble Sort) Algoritması ile bir
dizinin elemanlarını büyükten küçüğe dogru sıralar */
#include <stdio.h>
#define n 10
int main(void)
{
int a[n] = {100, -250, 400, 125 ,550, 900, 689, 450, 347, 700};
int j,k,gecici;
/* Dizinin kendisi */
printf("Once : ");
for(k=0; k<n; k++)
printf("%5d ",a[k]);
/* Sırala */
for(k=0; k<n-1; k++)
for(j=0; j<n-1; j++)
if( a[j]<a[j+1] ){
gecici = a[j];
a[j] = a[j+1];
a[j+1] = gecici;
}
/* Sıralama bitti */
printf("\nSonra: ");
for(k=0; k<n; k++)
printf("%5d ",a[k]);
printf("\n");
return 0;
}
|
ÇIKTI
Once : 100 -250 400 125 550 900 689 450 347 700
Sonra: 900 700 689 550 450 400 347 125 100 -250
|
10.5 Karakter Dizileri (Strings)
C dilinde, karakter dizileri oldukça sık kullanılır. Sadece karakter dizilerine özel olarak, karakter dizilerinin sonuna sonlandırcı karakter olarak adlandırılan bir simge eklenir. Sonlandırcı karakter, işlemlerin hızlı ve etkin bir biçimde yapılabilmesine olanak sağlar[2].
Sonlandırıcı karakter: - dizinin bittiği yeri gösterir,
- ASCII tablosunun sıfır numaralı ('\0') karakteridir.
char s[7] = {'d','e','n','e','m','e','\0'};
yada char s[7] = "deneme";
Birinci tanımlamada sonlandırıcı karakter programcı tarafından konmalıdır. Ikinci tanımlamada ise buna gerek yoktur. Çünkü, sonlandırıcı karakter bu atamayla, derleyici tarafından eklenir.
NOTchar s[7] = "deneme"; |
Karakter dizileri gets() fonksiyonu ile klavyeden okunabilir.
char ad[20];
...
gets(ad);
Karakter dizleri veya katarlar Bölüm 12'de daha ayrıntılı işlenecektir. Burada sadece iki basit örnek sunulmuştur. Program 10.6'da bir karakter dizisinin uzunluğunun nasıl bulunduğu, Program 10.7'de ise bir karakter dizisinin tersyüz edilişi gösterilmiştir. İnceleyiniz.
Program 10.6: Bir karakter dizisinin uzunluğunu bulur
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
| /* 09prg06.c: Bir karakter dizisinin uzunluğunu bulur */
#include <stdio.h>
int main(void)
{
char s[40];
int k = 0;
/* diziyi oku */
printf("Bir seyler yazin : ");
gets(s);
/* sonlandırıcı karaktere kadar karakterleri say */
while( s[k]!='\0' )
k++;
printf("Dizinin uzunlugu : %d\n",k);
return 0;
}
|
ÇIKTI
Birseyler yazin : Gazintep Universitesi
Dizinin uzunlugu : 21
|
Program 10.7: Bir karakter dizisinin tersini bulur
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
| /* 09prg07.c: Bir karakter dizisini tersyüz eder */
#include <stdio.h>
int main(void)
{
char s[40], gecici;
int i, n;
/* diziyi oku */
printf("Bir seyler yazin : ");
gets(s);
/* sonlandırıcı karaktere kadar */
for(n=0; s[n] != '\0'; n++)
;
for(i=0; i<n/2; i++){
gecici = s[n-i-1];
s[n-i-1] = s[i];
s[i] = gecici;
}
printf("Tersi : %s\n",s);
return 0;
}
|
ÇIKTI
Bir seyler yazin : Deneme
Tersi : emeneD
|
10.6 Çok Boyutlu Diziler
Bir dizi aşağıdaki gibi bildirildiğinde bir boyutlu (tek indisli) dizi olarak adlandırılır. Bu tip dizilere vektör denir.
float a[9];
Bir dizi birden çok boyuta sahip olabilir. Örneğin iki boyutlu b dizisi şöyle tanımlanabilir:
float b[9][4];
İki boyutlu diziler matris olarak adlandırılır. ilk boyuta satır, ikinci boyuta sütün denir. Yukarıda b matrisinin eleman sayısı 9x4=36 dır. Bu durumda, genel olarak bir dizi şöyle gösterilir:
Tablo 10.1: Dizlerin Bildirimi
| Dizi Çeşiti | Genel Bildirimi | Örnek |
| Tek boyutlu diziler (Vektörler) | tip dizi_adı[eleman_sayısı] | int veri[10]; |
| İki boyutlu diziler (Matrisler) | tipdizi_adı[satır_sayısı][sutun_sayısı] | float mat[5][4]; |
| Çok boyutlu diziler | tipdizi_adı[boyut_1][boyut_2]...[boyut_n]; | double x[2][4][2]; |
Çok boyutlu diziler tek boyuta indir generek bellekte tutulurlar. Tek indisli dizilerde olduğu gibi, çok indisli dizilere de başlangıç değeri vermek mümkün. Örneğin 3 satır ve 4 sütünlu (3x4=12 elemanlı) bir x matrisinin elemanları şöyle tanımlanabilir:
int x[3][4] = {11,34,42,60, 72,99,10,50, 80,66,21,38};
yada int x[3][4] = {11,34,42,60, /* 1. satır elemanları */
72,99,10,50, /* 2. satır elemanları */
80,66,21,38}; /* 3. satır elemanları */
Bu matris ekrana matris formunda yazılmak istendiğinde: for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
printf("%4d",x[i][j]);
printf("\n");
}
çıktısı: 11 34 42 60 72 99 10 50 80 66 21 38şeklinde olacaktır.
Program 10.8, iki matrisin toplamını başka bir matrise aktarır. Matris toplamı
Program 10.8: İki matrisin toplamı
01:
02:
03:
04:
05:
06:
07:
08:
09:
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:
36:
37:
38:
39:
40:
| /* 09prg08.c: iki matrisin toplamı */
#include <stdio.h>
#define SAT 2
#define SUT 3
int main()
{
int a[SAT][SUT] = {5, 3, 7, 0, 1, 2};
int b[SAT][SUT] = {1, 2, 3, 4, 5, 6};
int c[SAT][SUT];
int i, j;
puts("A Matrisi:");
for(i=0; i<SAT; i++){
for(j=0; j<SUT; j++)
printf("%4d",a[i][j]);
printf("\n");
}
puts("B Matrisi:");
for(i=0; i<SAT; i++){
for(j=0; j<SUT; j++)
printf("%4d",b[i][j]);
printf("\n");
}
puts("\nC Matrisi:");
for(i=0; i<SAT; i++){
for(j=0; j<SUT; j++){
c[i][j] = a[i][j] + b[i][j];
printf("%4d",c[i][j]);
}
printf("\n");
}
return 0;
}
|
ÇIKTI
A Matrisi:
5 3 7
0 1 2
B Matrisi:
1 2 3
4 5 6
C Matrisi:
6 5 10
4 6 8
|
Program 10.9, iki kare matrisin çarpımı başka bir matrise aktarır. Matris çarpımı
Program 10.9: İki matrisin çarpımı
01:
02:
03:
04:
05:
06:
07:
08:
09:
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:
36:
37:
| /* 10prg09.c: 3x3 boyutundaki iki kare matrisin çarpımı */
#include <stdio.h>
#define N 3
int main()
{
int a[N][N], b[N][N], c[N][N];
int i,j,k,toplam;
puts("A Matrisini girin:");
for(i=0; i<N; i++)
for(j=0; j<N; j++)
scanf("%d",&a[i][j]);
puts("B Matrisini girin:");
for(i=0; i<N; i++)
for(j=0; j<N; j++)
scanf("%d",&b[i][j]);
puts("\nC Matrisi:");
for(i=0; i<N; i++){
for(j=0; j<N; j++){
for(toplam=0, k=0; k<N; k++)
toplam += a[i][k]*b[k][j];
c[i][j] = toplam;
printf("%4d",c[i][j]);
}
printf("\n");
}
return 0;
}
|
ÇIKTI
A Matrisini girin:
5 3 7
0 1 2
9 0 4
B Matrisini girin:
1 2 3
4 5 6
7 8 9
C Matrisi:
66 81 96
18 21 24
37 50 63
|
10.7 Dizilerin Fonksiyonlarda Kullanılması
Diziler de sıradan değişkenler gibi bir fonksiyona parametere olarak akratılabilir. Fakat, aktarma kuralı biraz farklıdır. Her zaman dizinin yanında boyutunun da bilinmesi gerekir.
Program 10.10'da, bir dizinin elemanlarının yazdırılması işi bir fonksiyona yaptırılmıştır. Fonkisyona parametre olarak dizinin yanında boyutu da ilave edilmiştir. İnceleyiniz.
Program 10.10: Bir dizinin yazdırılması
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
| /* 10prg10.c: bir dizinin yazdırılması */
#include <stdio.h>
void dizi_yaz(float x[], int n);
int main(){
float kutle[5]= { 8.471, 3.683, 9.107, 4.739, 3.918 };
dizi_yaz(kutle, 5);
return 0;
}
void dizi_yaz(float x[], int n)
{
int i;
for(i=0; i<n; i++)
printf("%7.3f", x[i]);
printf("\n");
}
|
ÇIKTI
8.471 3.683 9.107 4.739 3.918
|
Eğer dizi boyutu #define önişlemcisi ile belirtilirse boyutun ayrıca parametre olarak kullanılmasına gerek youktur. Bu durumda Program 10.10 şöyle değiştirlebilir:
...
#define BOYUT 5
void dizi_yaz(float x[]);
void main(void)
{
float kutle[BOYUT]= { 8.471, 3.683, 9.107, 4.739, 3.918 };
dizi_yaz(kutle);
}
...
Program 10.3'de bir dizinin en büyük elemanının nasıl bulunduğu gösterilmişti. En büyük elemanı bulma işlemi bir fonksiyona nasıl yaptırıldığı Program 10.11'de gösterilmiştir.
Program 10.11: Bir dizinin en büyük elemanının bulunması
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
| /* 10prg11.c
Bir dizinin en büyük elemanının fonksiyonla bulunması */
#include <stdio.h>
/* n elemanlı bir dizinin enbüyük elemanını gönderir */
int enBuyuk(int a[], int n)
{
int k, en_buyuk_eleman;
/* ilk eleman en büyük kabul ediliyor */
en_buyuk_eleman = a[0];
for(k=1; k<n; k++)
if( a[k]>en_buyuk_eleman )
en_buyuk_eleman = a[k];
return en_buyuk_eleman;
}
int main()
{
int a[10] = {100, -250, 400, 125 ,550, 900, 689, 450, 347, 700};
int eb;
eb = enBuyuk(a,10);
printf("En buyuk eleman = %d\n",eb);
return 0;
}
|
ÇIKTI
En buyuk eleman = 900
|
Son olarak, bir kare matrisin iz (trace) değerini bulup ekrana yazan bir fonksiyon Program 10.12'de verilmişitir. Bir kare matrisin izi, matrisin asal köşegen üzerinde bulunan elemanların toplamı olarak tanımlıdır. Bu tanıma göre, aşağıdaki matrisin izi 2 + 8 + 4 = 14 tür..
İz matematiksel olarak şöyle gösterilir:![]()
Program 10.12: Bir matrisin izi
01:
02:
03:
04:
05:
06:
07:
08:
09:
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:
36:
37:
| /* 10prg12.c
Bir 3x3 bir matrisin izinin fonksiyonla bulunması */
#include <stdio.h>
double iz(double a[][3], int);
int main()
{
double a[3][3], izA;
int i,j;
puts("matrisi girin:");
for(i=0; i<3; i++)
for(j=0; j<3; j++)
scanf("%lf",&a[i][j]);
izA = iz(a,3);
printf("matrisin izi = %lf\n",izA);
return 0;
}
double iz(double a[][3], int n)
{
int i;
double toplam = 0.0;
for(i=0; i<n; i++)
toplam += a[i][i];
return toplam;
}
|
ÇIKTI
matrisi girin:
2 1 -5
3 8 6
7 1 4
matrisin izi = 14.000000
|
Matrisler, fonksiyonlara parametre olarak geçirilirken ikinci boyununda verildiğine dikkat edin.
Hiç yorum yok:
Yorum Gönder