Call By Reference ile dizi elemanlarını sağa sola kaydırma...

paranoiac

New member
Kod:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define SIZE 5
void dondurmece(int,int a[]);
int main()
{
    int i=1,j,yon;
    char cevap,ycevap;
    int diz[SIZE];
    printf("Diziyi Giriniz(Her Bir Elemani Tam Sayi Olacak Sekilde):\n");
    for(j=0 ; j<SIZE ; j++)
        scanf("%d",&diz[j]);
    while(ycevap!='h')
    {
    printf("1-Sagdan Sola Kaydir\n2-Soldan Saga Kaydir\nSeciminiz?: ");
    scanf("%d",&yon);
    do{
        printf("\n%d Kez Kaydirilmis Hali:\n\n",i);
        dondurmece(yon,diz);
        if(i%SIZE==0)
            printf("\n>>!!!Basa Dondunuz!!!<<\n\n");
        for(j=0 ; j<SIZE ; j++)
            printf("%3d",diz[j]);
        printf("\n\nTekrar Kaydirsin mi?(e/h): ");
        scanf(" %c",&cevap);
        i++;
    }while(cevap!='h');
    printf("Menuyu Gormek Ister Misiniz?(e/h): ");
    scanf(" %c",&ycevap);
    i=1;
    j=0;
    }    
    printf("\nProgrami Sonlandirdiniz...");
    getch();
    return 0;
}
void dondurmece(int yon,int a[])
{
    int i,x,y;
    x=a[SIZE-1];
    y=a[0];
    if(yon==2)
    {
        for(i=SIZE-1 ; i>0 ; i--)
                a[i]=a[i-1];
        a[0]=x;
    }
    else if(yon==1)
    {
        for(i=0 ; i<SIZE ; i++)
                a[i]=a[i+1];
        a[SIZE-1]=y;
    }    
}
Örnek bir kod... Yine bana ait... Dizi mantığını ve dizileri adreslerine göre fonksiyonlar tarafından çağırarak dizi değişkenlerinin değerlerinin değiştirilmesine bir örnek :cool:
 
Üst