Şimdi Ara

C'de dizi elemanlarının yerini değiştirmek

Daha Fazla
Bu Konudaki Kullanıcılar: nilbibare Daha Az
1 Kayıtlı Üye ve 1 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
681
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar elimde 16 elemanlı bir dizi var örneğin A dizisi
    Bu dizinin elemanları A[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; olsun

    Benim yapmak istediğim dizinin sırasını {0,1,14,15,2,3,12,13,4,5,10,11,6,7,8,9}
    yani dizinin üztünden 2 eleman altından 2 eleman şeklinde sıralanacak algoritmasını kuramadım
    Bir foksiyonum olacak ve diziyi bu hale sokacak bu fonksiyonu yazabilirmisiniz.........



  • dostum sanırım 2 for döngüsüyle halledersin

    1.de A olarak alacaksın ve i=0 dan 1=8 e kadar ileri
    2. de A olarak i=14 ten i=9 A DOGRU GERİ GELECEK

    ŞİMDİ 1 FOR CALISTIMI A[O] A[1] OKUTUP BASKA BİR DİZİYE YAZACAKSIN BU DİZİDE B[K] OLSUN K=0 DAN K=15 KADAR OLACAK A[0] LA A[1] B[0] B[1] E YAZDIRDINMI SONRA 2 FOR DÖNGÜSÜ CALISTIRACAKSIN A[14] VE A[İ+1] YANİ A[15] İ OKUTUP TEKARAR AYNI SEKİLDE B[2] VE B[3] E YAZMAK BÖYLECE DEVAM EDECEK


    SORUN SU 2 FOR DÖNGÜSÜNDE İ=14 TEN BASLATIP 2 OKUNACAK SAYIYI A[İ+1] SEKLİNDE OKUTMAN GEREK AYRICA GERİYE DOGRU İ Yİ AZALTIRKEN İ=İ-2 OLARAK AZALTMAN GEREK

    YAPAN BİRİŞ BULUNUR HERAL DE BENİMKİ BİRAZ KARISIK OLDU
  • saol yardımın için problem çözüldü
  • İstediğiniz işi yapacak bir kod yazdım umarım yararlı olur..Sadece 16 elemanlı bu dizi ile ilgili değil genel bir kod yazmak istedim...Kolaylıklar dilerim...

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #define size 16

    void sirala(int *ptr);

    main(){
    int a[size]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},*ptr=a,k;
    printf("dizi elemanlari eski sirasi :\n");
    for(k=0;k<size;k++)
    printf("%d ",ptr[k]);
    printf("\n");
    sirala(ptr);
    printf("dizi elemanlari yeni sirasi : \n");
    for(k=0;k<size;k++)
    printf("%d ",ptr[k]);
    getch();
    }


    void sirala(int *ptr){
    int i,k,l,b[size];
    for(i=0,k=0,l=(size-1) ; (i+4)<=size ; i+=4,k+=2,l-=2){
    b=ptr[k]; b[i+1]=ptr[k+1];
    b[i+2]=ptr[l-1];b[i+3]=ptr[l];
    }
    memcpy(ptr,b,sizeof(int)*size);
    }



    < Bu mesaj bu kişi tarafından değiştirildi serkanmj -- 25 Mayıs 2006; 14:14:36 >




  • Yapay Zeka’dan İlgili Konular
    C# ve Php aynı anda gider mi ?
    12 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.