EEM-119 Algoritma ve Programlama I Dersi
Diziler
- Dizi elemanlarına değer atama
#include <stdio.h> int main(){ int a[10]; a[0]=10; a[1]=20; a[2]=30; printf("a dizisinin 3. elemani icin deger giriniz: "); scanf("%d",&a[3]); printf("%d %d %d %d",a[0],a[1],a[2],a[3]); return 0; }
bir deger giriniz 50 10 20 30 50
- Döngü ile değer atama, değerleri yazdırma
#include <stdio.h>
int main(int argc, char *argv[]) {
int a[5], i;
for(i=0;i<5;i++){
printf("dizinin %d. elemanina deger giriniz:",i);
scanf("%d",&a[i]);
}
for(i=0;i<5;i++)
printf("a[%d]=%d ",i,a[i]);
return 0;
}
dizinin 0. elemanina deger giriniz:
10
dizinin 1. elemanina deger giriniz:
12
dizinin 2. elemanina deger giriniz:
14
dizinin 3. elemanina deger giriniz:
16
dizinin 4. elemanina deger giriniz:
18
a[0]=10 a[1]=12 a[2]=14 a[3]=16 a[4]=18
#include <stdio.h>
int main(int argc, char *argv[]) {
int a[10], i;
printf("diziye tek seferde tum elemanları atama:\n");
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
printf("dizinin elemanlarini ekrana yazdirma:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
diziye tek seferde tum elemanları atama: 4 1 6 3 7 9 10 3 5 3 dizinin elemanlarini ekrana yazdirma: 4 1 6 3 7 9 10 3 5 3
- Dizi elemanlarının toplamı
#include <stdio.h>
int main(){
int a[10];
int i,toplam=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
toplam = toplam+a[i];
printf("sayilarin toplami: %d", toplam);
return 0;
}
5 3 9 1 7 10 6 8 4 2 sayilarin toplami: 55
- Dizinin en büyük elemanını bulma
#include <stdio.h>
int main(){
int a[10];
int i,eb;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
eb=a[0];
for(i=1;i<10;i++)
if(a[i]>eb)
eb=a[i];
printf("en buyuk sayi: %d", eb);
return 0;
}
5 3 9 1 7 10 6 8 4 2 en buyuk sayi: 10
- Dizinin en küçük elemanını bulma
#include <stdio.h>
int main(){
int a[10];
int i,ek;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
ek=a[0];
for(i=1;i<10;i++)
if(a[i]<ek)
ek=a[i];
printf("en kucuk sayi: %d", ek);
return 0;
}
5 3 9 1 7 10 6 8 4 2 en kucuk sayi: 1
- Diziyi ters yazdırma
#include <stdio.h>
int main(){
int a[10];
int i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
for(i=9;i>=0;i--)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<10;i++)
printf("%d ",a[9-i]);
return 0;
}
5 3 9 1 7 10 6 8 4 2 5 3 9 1 7 10 6 8 4 2 2 4 8 6 10 7 1 9 3 5 2 4 8 6 10 7 1 9 3 5
- while döngüsü ile dizi yazdırma
#include <stdio.h>
int main(){
int a[10];
int i=0;
while(i<10){
scanf("%d",&a[i]);
i++;
}
i=0;
while(i<10){
printf("%d ",a[i]);
i++;
}
return 0;
}
5 3 9 1 7 10 6 8 4 2 5 3 9 1 7 10 6 8 4 2
#include <stdio.h>
int main(){
int a[10];
int i=0;
while(i<10)
scanf("%d",&a[i++]);
i=0;
while(i<10)
printf("%d ",a[i++]);
return 0;
}
5 3 9 1 7 10 6 8 4 2 5 3 9 1 7 10 6 8 4 2
- Dizi başlangıç değerleri atama
#include <stdio.h>
int main(){
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i=0;
while(i<10)
printf("%d ",a[i++]);
return 0;
}
1 2 3 4 5 6 7 8 9 10
#include <stdio.h>
int main(){
int a[10]={1,2,3,4};
int i=0;
while(i<10)
printf("%d ",a[i++]);
return 0;
}
1 2 3 4 0 0 0 0 0 0
#include <stdio.h>
int main(){
int a[10]={0};
int i=0;
while(i<10)
printf("%d ",a[i++]);
return 0;
}
0 0 0 0 0 0 0 0 0 0
Başlangıç değeri atanmazsa aşağıdaki gibi değerler görülebilir:
#include <stdio.h>
int main(){
int a[10];
int i=0;
while(i<10)
printf("%d ",a[i++]);
return 0;
}
1900540590 32552 1897995046 32552 0 0 -1741962240 -1105345314 -99449040 32767
- Bir sayıda hangi rakamdan kaç tane var
#include <stdio.h>
int main(){
int rakamlar[10]={0}, sayi;
int i=0;
printf("sayi giriniz: ");
scanf("%d",&sayi);
while(sayi>0){
rakamlar[sayi%10]+=1;
sayi=sayi/10;
}
for(i=0;i<10;i++)
printf("%d ",rakamlar[i]);
return 0;
}
sayi giriniz: 333178434 0 1 0 4 2 0 0 1 1 0
- Dizi boyutları
#include <stdio.h>
#define N 10
int main(){
int a[N];
int i=0;
while(i<N)
scanf("%d",&a[i++]);
for(i=0;i<N;i++)
printf("%d ",a[i]);
return 0;
}
5 3 9 1 7 10 6 8 4 2 5 3 9 1 7 10 6 8 4 2
#include <stdio.h>
int main(){
int a[10];
short b[10];
printf("%d %d", sizeof(a), sizeof(b));
return 0;
}
40 20
#include <stdio.h>
int main(){
int a[10];
int i=0;
while(i<sizeof(a)/sizeof(a[0]))
scanf("%d",&a[i++]);
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
printf("%d ",a[i]);
return 0;
}
5 3 9 1 7 10 6 8 4 2 5 3 9 1 7 10 6 8 4 2
- Çok boyutlu diziler
#include <stdio.h>
int main(){
int a[4][3];
int i,j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
return 0;
}
5 3 9 1 7 10 6 8 4 2 1 2 5 3 9 1 7 10 6 8 4 2 1 2
#include <stdio.h>
int main(){
int a[4][3];
int i,j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++){
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
5 3 9 1 7 10 6 8 4 2 1 2 5 3 9 1 7 10 6 8 4 2 1 2
#include <stdio.h>
int main(){
int a[4][3];
int i,j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++){
for(j=0;j<3;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
return 0;
}
5 3 9 1 7 10 6 8 4 2 1 2 5 3 9 1 7 10 6 8 4 2 1 2
#include <stdio.h>
int main(){
int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int i,j;
for(i=0;i<4;i++){
for(j=0;j<3;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12
#include <stdio.h>
int main(){
int a[4][3]={{1}};
int i,j;
for(i=0;i<4;i++){
for(j=0;j<3;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
return 0;
}
1 0 0 0 0 0 0 0 0 0 0 0
- 2 boyutlu 2 dizinin toplamı
#include <stdio.h>
#define N 4
#define M 3
int main(){
int a[N][M],b[N][M],c[N][M];
int i,j;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&b[i][j]);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
c[i][j]=a[i][j]+b[i][j];
for(i=0;i<N;i++){
for(j=0;j<M;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
printf("\n\n");
for(i=0;i<N;i++){
for(j=0;j<M;j++)
printf("%4d ",b[i][j]);
printf("\n");
}
printf("\n\n");
for(i=0;i<N;i++){
for(j=0;j<M;j++)
printf("%4d ",c[i][j]);
printf("\n");
}
return 0;
}
5 3 9 1 7 10 6 8 4 2 1 2 3 9 1 7 10 6 8 4 2 1 2 7 5 3 9 1 7 10 6 8 4 2 1 2 3 9 1 7 10 6 8 4 2 1 2 7 8 12 10 8 17 16 14 12 6 3 3 9
#include <stdio.h>
#define N 4
#define M 3
int main(){
double a[N][M];
int i;
for(i=0;i<N*M;i++)
scanf("%lf",&a[i/M][i%M]);
for(i=0;i<N*M;i++)
printf("%.2lf ",a[i/M][i%M]);
return 0;
}
5 3 9 1 7 10 6 8 4 2 1 2 5.00 3.00 9.00 1.00 7.00 10.00 6.00 8.00 4.00 2.00 1.00 2.00
#include <stdio.h>
#define N 4
#define M 3
int main(){
double a[N][M];
int i,j;
for(i=0;i<N*M;i++)
scanf("%lf",&a[i/M][i%M]);
for(i=0;i<N;i++){
for(j=0;j<M;j++)
printf("%.2lf ",a[i][j]);
printf("\n");
}
return 0;
}
5 3 9 1 7 10 6 8 4 2 1 2 5.00 3.00 9.00 1.00 7.00 10.00 6.00 8.00 4.00 2.00 1.00 2.00
#include <stdio.h>
#define N 4
#define M 3
int main(){
double a[N][M];
int i;
for(i=0;i<N*M;i++)
scanf("%lf",&a[i/M][i%M]);
for(i=1;i<=N*M;i++){
printf("%7.2lf",a[(i-1)/M][(i-1)%M]);
if(i%M==0)
printf("\n");
}
return 0;
}
5 3 9 1 7 10 6 8 4 2 1 2 5.00 3.00 9.00 1.00 7.00 10.00 6.00 8.00 4.00 2.00 1.00 2.00
- Birim matris
#include <stdio.h>
#define N 4
int main(){
double a[N][N];
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(i==j)
a[i][j]=1;
else
a[i][j]=0;
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%4.1lf ",a[i][j]);
printf("\n");
}
return 0;
}
1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0
#include <stdio.h>
#define N 4
int main(){
double a[N][N]=0;
int i,j;
for(i=0;i<N;i++)
a[i][i]=1;
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%4.1lf ",a[i][j]);
printf("\n");
}
return 0;
}
1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0
- 2 boyutlu bir dizinin satır ve sutunlarının toplamı
#include <stdio.h>
#define N 5
#define M 6
int main(){
int a[N][M];
int i,j, toplam;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++){
for(j=0;j<M;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
for(i=0;i<N;i++){
toplam=0;
for(j=0;j<M;j++)
toplam += a[i][j];
printf("%d. satirin toplami:%d\n",i+1,toplam);
}
for(j=0;j<M;j++){
toplam=0;
for(i=0;i<N;i++)
toplam += a[i][j];
printf("%d. sutunun toplami:%d\n",j+1,toplam);
}
return 0;
}
53 49 26 5 3 69 48 86 82 63 95 71 8 12 80 70 50 64 62 51 11 97 93 34 43 72 77 31 1 94 53 49 26 5 3 69 48 86 82 63 95 71 8 12 80 70 50 64 62 51 11 97 93 34 43 72 77 31 1 94 1. satirin toplami:205 2. satirin toplami:445 3. satirin toplami:284 4. satirin toplami:348 5. satirin toplami:318 1. sutunun toplami:214 2. sutunun toplami:270 3. sutunun toplami:276 4. sutunun toplami:266 5. sutunun toplami:242 6. sutunun toplami:332
Birinci öğretimde sorulan sınıfta yapamadığımız sorunu cevabı:
- Bir diziyi tersten yazdıralım ancak belirlediğimiz bir indisteki değer yerinde sabit kalsın:
#include <stdio.h>
#define N 10
int main(int argc, char *argv[]) {
int a[N]={4, 1, 6, 3, 2, 9, 10, 7, 5, 8};
int i, sabit_tutlacak_index;
for(i=0;i<N;i++)
printf("%3d ",a[i]);
printf("\n");
for(sabit_tutlacak_index=0;sabit_tutlacak_index<N;sabit_tutlacak_index++){
printf("index: %d\n", sabit_tutlacak_index);
for(i=N-1;i>=0;i--){
if(sabit_tutlacak_index<N/2){
if(i>N-1-sabit_tutlacak_index || i<sabit_tutlacak_index)
printf("%3d ", a[i]);
else if(i==N-1-sabit_tutlacak_index)
printf("%3d ", a[sabit_tutlacak_index]);
else
printf("%3d ", a[i+1]);
}else{
if(i<N-1-sabit_tutlacak_index || i>sabit_tutlacak_index )
printf("%3d ", a[i]);
else if(i==N-1-sabit_tutlacak_index)
printf("%3d ", a[sabit_tutlacak_index]);
else
printf("%3d ", a[i-1]);
}
}
printf("\n");
}
return 0;
}
4 1 6 3 2 9 10 7 5 8
index: 0
4 8 5 7 10 9 2 3 6 1
index: 1
8 1 5 7 10 9 2 3 6 4
index: 2
8 5 6 7 10 9 2 3 1 4
index: 3
8 5 7 3 10 9 2 6 1 4
index: 4
8 5 7 10 2 9 3 6 1 4
index: 5
8 5 7 10 2 9 3 6 1 4
index: 6
8 5 7 9 2 3 10 6 1 4
index: 7
8 5 10 9 2 3 6 7 1 4
index: 8
8 7 10 9 2 3 6 1 5 4
index: 9
5 7 10 9 2 3 6 1 4 8